【问题标题】:MQTT in paho can't connect in connectionpaho中的MQTT无法连接
【发布时间】:2013-11-02 10:57:26
【问题描述】:
我正在尝试使用 Paho 的 MQTT javascript 客户端。我看到一个来自 HiveMQ 的例子,你可以在这里查看 - - http://www.hivemq.com/demos/websocket-client/
它似乎可以工作,但是当我将主机设置为:test.mosquitto.org:1883,这是 mosquitto 的 mqtt 代理服务时,它失败了。
当我尝试连接到这个 mosquitto 服务时,它给了我一个连接错误 - connect failed: AMQJS0007E, Socket error: undefined.
【问题讨论】:
标签:
eclipse
mqtt
mosquitto
paho
【解决方案1】:
Mosquitto 不支持开箱即用的 MQTT over WebSockets。所以 Roger 使用 lighttpd 和 mod_websocket 模块进行转发。
这意味着端口将是端口 80 而不是 1883
但刚刚快速浏览了http://test.mosquitto.org/ws.html,由于演示无法正常工作,因此 lighttpd 实例目前可能已关闭。
如果您想运行自己的 mosquitto 本地副本进行测试,该页面上有一个链接,其中包含有关如何为 lighttpd 或 ubuntu ppa 构建 mod_websocket 以从中下载它的说明。
编辑:
Mosquitto 现在包括内置的 WesbSocket 支持,但您需要添加一个额外的侦听器来启用它,例如
listener 8883
protocol websockets
【解决方案2】:
正如 hardillb 所说,您需要使用端口 80。您应该使用的完整 url 是
ws://test.mosquitto.org/mqtt
如果您按照 Andy 的建议使用 m2m.eclipse.org(实际上是使用支持 websockets 的 apache),那么您应该使用
ws://m2m.eclipse.org/ws
【解决方案3】:
您可以对 m2m.eclipse.org 尝试相同的操作,我认为它也通过 lighthttpd 打开了 websocket 支持。