在web前端上使用MQTT

前言

原理很简单,利用mosca创建好MQTT服务器后,然后通过websocket就能使用了。如果没有搭建服务器请参考下面这篇文章
利用nodejs快速搭建mqtt服务器
因为都用的是nodejs,所以我们可以将web服务器和mqtt服务器写在一个文件下,但是要设置不同的端口避免发生冲突。所以这就是,物联网使用nodejs的好处。

Demo

1.在之前创建好的服务器下添加如下代码(其实就是设置一下http端口)

  var mosca = require("mosca");
  var server = new mosca.Server({
  http: {
    port: 3000,
    bundle: true,
    static: './'
  }
});
服务器.png

2.客户端调用(官方案例)

<html>
  <head>
 <script src="/mqtt.js"></script>
  </head>
  <body>
    <script>
      var client = mqtt.connect();

      client.subscribe("mqtt/demo");

      client.on("message", function(topic, payload) {
        alert([topic, payload].join(": "));
        client.end();
      });

      client.publish("mqtt/demo", "hello world!");
    </script>
  </body>
</html>
客户端demo.png

解释:因为我的mqtt服务器是搭建在本地的所以我的ip应该为127.0.0.1;且在服务器中设置的端口为7410,所以再调用js文件时,应该如上图所示。

在测试自己是否调用成功的话,可以将链接复制到浏览器上,如果链接是正确的则会出现如下图所示。


调用mqtt.js.png

总结:通过web前端对mqtt的调用大大方便了一些简单事件的处理,比如实时显示温湿度,控制led的开关等不需要存储数据的事件。

附:官方链接 https://github.com/mcollina/mosca/wiki/MQTT-over-Websockets

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容