如何配置 mqtt.js 通过 websockets 连接到 iot.eclipse.org
Posted
技术标签:
【中文标题】如何配置 mqtt.js 通过 websockets 连接到 iot.eclipse.org【英文标题】:How to configure mqtt.js to connect to iot.eclipse.org over websockets 【发布时间】:2015-02-26 18:33:25 【问题描述】:编辑:我现在的问题是这个。我可以使用http://www.hivemq.com/demos/websocket-client 连接到iot.eclipse.org,使用端口80。当我通过browsified mqtt.js client 连接时,我收到以下错误:
到 'ws://iot.eclipse.org/' 的 WebSocket 连接失败:期间出错 WebSocket 握手:意外响应代码:200
我尝试了 8080、8000、1883 和 80 端口,但没有任何运气。有什么建议吗?
------------下面的原始问题-----------
我想通过 websockets 使用 mqtt 与 mqtt 代理连接。我的客户端需要在浏览器中运行。
为了实现这一点,我正在使用mqtt.js 库并关注these instructions。
在 broker.mqttdashboard.com 上针对公共代理运行时,一切正常。但是,当我连接到 iot.eclipse.org 和 test.mosquitto.org 的公共代理时,我收到 HTTP 错误。
我认为问题是针对后两个代理运行时客户端的配置不正确,但我正在努力寻找任何帮助。
这里的配置,有没有人可以帮助我?
// Works fine
var options =
host: "broker.mqttdashboard.com",
port: 8000
;
// Doesn't work
/*var options =
host: "m2m.eclipse.org",
protocolId: 'MQIsdp',
protocolVersion: 3
;*/
// Doesn't work
/*var options =
host: "test.mosquitto.org",
protocolId: 'mosqOtti',
protocolVersion: 3
;*/
var client = mqtt.connect(options);
如果您需要更多信息,请告诉我!
标记
【问题讨论】:
【参考方案1】:test.mosquitto.org 和 iot.eclipse.org 都启用了 websockets(实际上已经很久了)。
你已经让 test.mosquitto.org 工作了——关键是使用端口 8080。
当前 iot.eclipse.org 配置要求连接 url 为 ws://iot.eclipse.org/mqtt
。
【讨论】:
在使用 iot.eclipse.org/mqtt 作为主机时仍然得到 404,尽管尝试了不同端口的全部负载...【参考方案2】:我不认为 m2m.eclipse.org / iot.eclipse.org 或 test.mosquitto.org 启用了 websockets。
broker.mqttdashboard.com 在下面运行一个启用了本机 websocket 的 HiveMQ。
所以简而言之,我认为这不是您的配置问题。为了确保这一点,您可以检查此 Web 应用程序并查看其他代理是否使用它:http://www.hivemq.com/demos/websocket-client/
【讨论】:
感谢您的快速答复!我会看看你发布的网络套接字客户端。但是,根据test.mosquitto.org/ws.html,test.mosquito.org 确实启用了网络套接字。虽然不太确定。eclipse.org... 刚刚使用 mqtt.js 成功连接到 test.mosquitto.org 代理,参数如下: var options = host: "test.mosquitto.org", port: 8080 iot.eclipse.org 在 hivemq 客户端中使用端口 80,但我很难让它在 mqtt.js 中工作。以上是关于如何配置 mqtt.js 通过 websockets 连接到 iot.eclipse.org的主要内容,如果未能解决你的问题,请参考以下文章
AWS MQTT over websocket 与 ngx-mqtt
基于node.js搭建简单的MQTT服务器,手机通过热点连接电脑实现MQTT服务器测试