我们正在考虑将MQTT用作我们正在构建的新设备上的消息传递协议。我们也喜欢该设备的Web界面。有谁知道你是否可以实现一个与MQTT对话的浏览器客户端应用程序(没有额外的插件)?
答案 0 :(得分:15)
是的,正如Steve-o的评论中提到的那样,通过websockets的MQTT是非常可能的。
目前有两种选择
答案 1 :(得分:10)
延长hardillbs的答案:
现在有第三种选择:
HiveMQ支持本机websockets,无需任何外部Web服务器。它与Eclipse Paho的Javascript客户端完美配合。
如果您想尝试一下,公共MQTTDashboard(在引擎盖下使用HiveMQ)支持端口8000上的websockets。
披露:我是HiveMQ的开发者之一
答案 2 :(得分:5)
IBM发布了一个基于WebSockets的JavaScript客户端。它是Eclipse Paho上的开源软件。
Git存储库: http://git.eclipse.org/c/paho/org.eclipse.paho.mqtt.javascript.git/
答案 3 :(得分:3)
我们在使用WSS, WebSocket到TCP网关(针对MQTT)方面拥有良好的使用经验。这意味着运行一个单独的进程,但这确实避免了必须更改Apache的配置。 WSS也支持TLS。
答案 4 :(得分:2)
blog by jpmens是使用websocket功能设置mosquitto的良好起点。他是client javascript code based on Paho is on github。
这个blog "How to run your web server and MQTT WebSockets broker on the same por"解释了服务器端的两种方式:
答案 5 :(得分:1)
不是Apache,但您可以按照本指南使用mod_websocket,
安装lighttpd但为了便于使用,我强烈推荐HiveMQ,正如@Dominik建议的那样。
答案 6 :(得分:0)
为什么不nodejs
+ socket.io
?它们包含所有小工具(webscokets,pub / sub,webserver,mqtt broker ...)。
SocketCluster是另一个很好的起点。
答案 7 :(得分:0)
此链接(Download codes)非常有用。下载并修改此文件mosq-mqttws31.html。而不是嵌入式java脚本库使用此cdn
https://cdnjs.cloudflare.com/ajax/libs/paho-mqtt/1.0.1/mqttws31.js
并且客户端实例化应该是client = new Paho.MQTT.Client(" test.mosquitto.org",8080," myclien256tiddd _" + parseInt(Math.random()* 100,10));