当前位置:   article > 正文

nodejs中搭建mqtt_nodev16.14安装mqttdemo.js

nodev16.14安装mqttdemo.js

使用nodejs编写一个简单的服务器,然后在编写两个客户端,一个客户端用来接收消息,另一个客户端用来发送消息:

服务器代码为:不过,你第一次运行的时候,会缺少mosca模块,自己npm install mosca即可。具体功能,学过编程的大致都能看懂,然后里面都有注释。

  1. var mosca = require('mosca');//构建服务器
  2. /*var settings = {
  3. port:8989,
  4. backend:{
  5. type:'zmq',
  6. json:false,
  7. zmq:require("zmq"),
  8. port:"tcp://127.0.0.1:33334",
  9. controlPort:"tcp://127.0.0.1:33334",
  10. delay:5
  11. },
  12. persistence: {
  13. factory:mosca.persistence.Mongo,
  14. url:"mongodb://localhost:270117/mosca"
  15. }
  16. };
  17. var MqttServer = new mosca.Server(settings);*/
  18. var MqttServer = new mosca.Server({
  19. port:8000
  20. });
  21. //监听链接
  22. MqttServer.on("clientConnected",function(client) {
  23. console.log("client connected",client.id);
  24. });
  25. //监听mqtt的主题消息
  26. MqttServer.on("published",function(packet,client) {//当客户端有连接的时候,发布主题消息
  27. var topic = packet.topic;
  28. console.log(packet);
  29. switch(topic) {
  30. case 'test':
  31. console.log("message-publish",packet.payload.toString());
  32. //mqtt转发主题消息
  33. MqttServer.publish({topic:'other',payload:'这是服务端!'});
  34. break;
  35. case 'test2':
  36. console.log("payload:",packet.payload.toString());
  37. var msg = {
  38. topic:'repeat',
  39. payload:packet.payload,
  40. qos:0,
  41. retain:false
  42. };
  43. MqttServer.publish(msg,function() {
  44. console.log('repeat! ');
  45. });
  46. break;
  47. case 'other':
  48. console.log("case-other:",packet.payload.toString());
  49. break;
  50. }
  51. });
  52. MqttServer.on('ready',function() {
  53. console.log("mqtt is running....");
  54. });

发送消息客户端:

  1. var mqtt = require('mqtt');
  2. var client = mqtt.connect('mqtt://192.168.1.136:8000');//连接到服务端
  3. var num = 0;
  4. var qtt = {};//定义消息(可以为字符串,对象等)
  5. qtt.aa = '发布';
  6. qtt.bb = '消息!';
  7. setInterval(function() {
  8. //发布主题为Test的消息
  9. client.publish('test',JSON.stringify(qtt),{qos:1,retain:true});//hello mqtt + num++
  10. },1000);
接收消息的客户端;

  1. var mqtt = require('mqtt');
  2. var client2 = mqtt.connect("mqtt://192.168.1.136:8000");
  3. client2.subscribe('test',{qos:1});//订阅主题为test的消息
  4. client2.on('message',function(top,message) {
  5. console.log(message.toString());
  6. });
至此第一个简单的nodejs版的mqtt的demo已经搭建完毕,后期具体的开发,见后文的博客!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/576078
推荐阅读
相关标签
  

闽ICP备14008679号