jquery - 如何通过javascript 使用 MQTT?
大家讲道理
大家讲道理 2017-04-11 10:28:42
[JavaScript讨论组]

我现在想通过javascript使用MQTT , 但是在这里找到的MQtt.js需要使用node.js ,
有没有的方法通过javascript使用MQTT?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(4)
阿神

mqtt的一些服务器是不支持websocket的

之前的做法是通过socket.io做中转,websocket连接到socekt.io上,后台nodejs再连接到mqtt server上

黄舟

MQTT属于tcp长连接。如果在浏览器上使用,需要使用websocket,http是不行的而且使用websocket来做的话MQTT服务端还要进行修改以支持websocket

阿神

MQTT是基于tcp的,目前新的浏览器是支持websocket的,而websocket是属于tcp协议的。
你提供的MQTT.js写了是支持browser的:

The MQTT client for Node.js and the browser

看他Browser那部分:

Just like browserify, export MQTT.js as library. The exported module would be var mqtt = xxx and it will add an object in the global space. You could also export module in other formats (AMD/CommonJS/others) by setting output.libraryTarget in webpack configuration.

npm install -g webpack // install webpack

cd node_modules/mqtt
npm install . // install dev dependencies
webpack mqtt.js ./browserMqtt.js --output-library mqtt
you can then use mqtt.js in the browser with the same api than node's one.

<html>
<head>
  <title>test Ws mqtt.js</title>
</head>
<body>
<script src="./browserMqtt.js"></script>
<script>
      var client = mqtt.connect(); // you add a ws:// url here
      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>
Your broker should accept websocket connection (see MQTT over Websockets to setup Mosca).

利用的,应该就是浏览器端的websocket,最终mqtt协议部分还是由后端处理的,浏览器端只是基于websocket进行消息发送,接收而已。

ringa_lee

不需要 nodejs emqtt 有js

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号