37

我们正在考虑在我们正在构建的新设备上使用 MQTT 作为消息传递协议。我们还想要该设备的 Web 界面。有谁知道您是否可以实现与 MQTT 对话的浏览器客户端应用程序(无需额外插件)?

4

8 回答 8

16

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

目前有2个选项

  1. IBM 的 MQ 7.5 带有 websockets 支持,您可以在此处找到详细信息。
  2. Mosquitto 代理有一个 javascript 客户端,其中运行了一个示例

要回答您的第二个问题,lighttpd 有一个 websockets 模块,可用于向现有代理进行转发,详情请点击此处

我找不到任何不需要您编写自己的库来进行转发的 Apache。

于 2013-04-16T23:01:39.640 回答
10

要扩展 hardillbs 答案:

现在有第三种选择:

HiveMQ支持本机 websocket,无需任何外部 web 服务器。它与Eclipse Paho的 Javascript 客户端完美配合。

如果您想尝试一下,公共MQTTDashboard(在后台使用 HiveMQ)支持端口 8000 上的 websocket。

披露:我是 HiveMQ 的开发人员之一

于 2013-08-23T21:12:47.970 回答
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

于 2013-10-19T02:58:38.753 回答
3

我们有很好的使用WSS的经验,WebSocket to TCP Gateway (for MQTT)。这意味着运行一个单独的进程,但这确实避免了更改 Apache 的配置。WSS 还支持 TLS。

于 2013-11-14T11:17:26.783 回答
2

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

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

但为了易于使用,我强烈推荐 HiveMQ,正如@Dominik 推荐的那样。

于 2013-11-10T22:23:26.377 回答
2

jpmens的博客是使用 websocket 功能设置 mosquitto 的一个很好的起点。他基于 Paho 的客户端 javascript 代码在 github 上

这篇博客“如何在同一个 por 上运行您的 Web 服务器和 MQTT WebSockets 代理”解释了服务器端的两种方式:

  • 带有 http 配置的 mosquitto
  • apache+mod_websocket_mosquitto
于 2016-05-06T14:06:00.730 回答
0

为什么不nodejs+ socket.io?它们附带了所有的小工具(webscokets、pub/sub、webserver、mqtt broker...)。 SocketCluster是另一个很好的起点。

于 2016-05-25T16:09:10.227 回答
0

此链接(下载代码)很有用。下载并修改此文件 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));

于 2016-12-10T02:04:28.673 回答