代码之家  ›  专栏  ›  技术社区  ›  fred basset

web浏览器可以使用MQTT吗?

  •  39
  • fred basset  · 技术社区  · 12 年前

    我们正在考虑在我们正在构建的新设备上使用MQTT作为消息传递协议。我们还想要一个设备的网络接口。有人知道你是否可以实现一个浏览器客户端应用程序(不需要额外的插件)来实现MQTT吗?

    8 回复  |  直到 12 年前
        1
  •  18
  •   Pablo Bianchi    7 年前

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

    目前有两种选择

    1. IBM的MQ 7.5支持websockets,您可以找到详细信息 here .
    2. Mosquitto代理有一个javascript客户端,并运行一个示例 here .

    为了回答您的第二个问题,lighttpd有一个websockets模块,可以用来向现有的代理转发详细信息 here .

    我还没能为Apache找到任何不需要您编写自己的库来进行转发的东西。

        2
  •  10
  •   Dominik Obermaier    11 年前

    扩展hardillbs的答案:

    现在有第三种选择:

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

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

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

        3
  •  5
  •   patrickwtl    11 年前
        4
  •  3
  •   jpmens    11 年前

    我们在使用 WSS 这个 WebSocket到TCP网关(用于MQTT) 。这意味着运行一个单独的进程,但这确实避免了必须更改Apache的配置。WSS还支持TLS。

        5
  •  2
  •   Matt.    11 年前

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

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

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

        6
  •  2
  •   minghua    9 年前

    这个 blog by jpmens 是使用websocket功能设置mosquito的一个很好的起点。他是 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配置的蚊子
    • apache+mod_websocket_msquitto
        7
  •  1
  •   gdm    9 年前

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

        8
  •  0
  •   rocksyne    8 年前

    此链接( Download codes )是有用的。下载并修改此文件mosq-mqttws31.html。使用此cdn而不是嵌入式java脚本库

    https://cdnjs.cloudflare.com/ajax/libs/paho-mqtt/1.0.1/mqttws31.js

    客户端实例化应为client=new Paho.MQT.client(“test.mosquitto.org”,8080,“myclien256tiddd_”+parseInt(Math.random()*100,10));