如何配置 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.orgtest.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.orgtest.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服务器测试

MQTT.js 无法建立本地代理连接

phpMQtt和paho.mqtt.js通过ssl协议链接moquitto

MQTT研究之EMQ:EMQX使用中的一些问题记录

如何配置 WebSocket 服务器以接受安全连接请求