【发布时间】:2016-05-27 20:34:21
【问题描述】:
这是我的 paho javascript 客户端代码
client = new Paho.MQTT.Client(host, Number(port), clientId);
client.onMessageArrived = onMessageArrived;
client.onMessageDelivered = onMessageDelivered;
client.onConnectionLost = onConnectionLost;
这里 port 8083 与其他经纪人合作,但不适用于 Rabbitmq。在文档中我找不到任何正确的端口号。
运行sudo rabbitmqctl status 给出
[{rabbitmq_management,"RabbitMQ Management Console","3.6.2"},
{rabbitmq_web_dispatch,"RabbitMQ Web Dispatcher","3.6.2"},
{webmachine,"webmachine","1.10.3"},
{mochiweb,"MochiMedia Web Server","2.13.1"},
{rabbitmq_mqtt,"RabbitMQ MQTT Adapter","3.6.2"},
{listeners,[{clustering,25672,"::"},{amqp,5672,"::"},{mqtt,1883,"::"}]},
所以我也尝试使用端口1883。我在关注https://github.com/rabbitmq/rabbitmq-web-mqtt-examples/blob/master/priv/echo.html
我收到此错误:
到 'ws://localhost:1883/mqtt' 的 WebSocket 连接失败:在收到握手响应之前连接已关闭
【问题讨论】:
-
你是否安装了mqtt-web插件(github.com/rabbitmq/rabbitmq-web-mqtt)? Websockets 上的 MQTT 不会与纯 MQTT 在同一个端口上
-
不,我没有安装这个,但正如我所提到的,
{rabbitmq_mqtt,"RabbitMQ MQTT Adapter","3.6.2"}由 rabbitmq 显示 -
哪个会得到纯 MQTT 而不是 MQTT over websockets
-
是的,安装该插件有效