Web浏览器可以使用MQTT吗?

时间:2013-04-16 21:22:11

标签: mqtt

我们正在考虑将MQTT用作我们正在构建的新设备上的消息传递协议。我们也喜欢该设备的Web界面。有谁知道你是否可以实现一个与MQTT对话的浏览器客户端应用程序(没有额外的插件)?

8 个答案:

答案 0 :(得分:15)

是的,正如Steve-o的评论中提到的那样,通过websockets的MQTT是非常可能的。

目前有两种选择

  1. IBM的MQ 7.5附带了websockets支持,您可以找到详细信息here
  2. Mosquitto经纪人有一个javascript客户端,其示例运行here
  3. 要回答第二个问题,lighttpd有一个websockets模块,可用于转发到包含详细信息here的现有代理。

    我无法为Apache找到任何不需要你编写自己的库来进行转发的东西。

答案 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/

教程就在这里。 https://www.ibm.com/developerworks/community/blogs/c565c720-fe84-4f63-873f-607d87787327/entry/how_to_prog_javascript?lang=en

答案 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"解释了服务器端的两种方式:

  • 带有http配置的mosquitto
  • 阿帕奇+ mod_websocket_mosquitto

答案 5 :(得分:1)

不是Apache,但您可以按照本指南使用mod_websocket,

安装lighttpd

http://oriolrius.cat/blog/2013/09/25/server-send-push-notifications-to-client-browser-without-polling/

但为了便于使用,我强烈推荐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));