首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HiveMQ中的Websockets不工作-日志中没有

HiveMQ中的Websockets不工作-日志中没有
EN

Stack Overflow用户
提问于 2017-01-21 07:03:53
回答 1查看 471关注 0票数 0

问题得到解决:查看的底部

我不能连接到websockets。1883年港口运转良好。这是MQTT.fx的输出:

代码语言:javascript
复制
2017-01-21 07:46:26,293  INFO --- BrokerConnectorController      : onConnect
2017-01-21 07:46:26,294  INFO --- ScriptsController              : Clear console.
2017-01-21 07:46:26,295  INFO --- MqttFX ClientModel             : MqttClient with ID MQTT_FX_Client_Websocket assigned.
2017-01-21 07:46:36,314 ERROR --- MqttFX ClientModel             : Error when connecting
org.eclipse.paho.client.mqttv3.MqttException: Connection lost
at org.eclipse.paho.client.mqttv3.internal.CommsReceiver.run(CommsReceiver.java:146) ~[org.eclipse.paho.client.mqttv3-1.1.0.jar:?]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_112]
Caused by: java.io.EOFException
at java.io.DataInputStream.readByte(Unknown Source) ~[?:1.8.0_112]
at org.eclipse.paho.client.mqttv3.internal.wire.MqttInputStream.readMqttWireMessage(MqttInputStream.java:65) ~[org.eclipse.paho.client.mqttv3-1.1.0.jar:?]
at org.eclipse.paho.client.mqttv3.internal.CommsReceiver.run(CommsReceiver.java:107) ~[org.eclipse.paho.client.mqttv3-1.1.0.jar:?]
... 1 more
2017-01-21 07:46:36,315 ERROR --- MqttFX ClientModel:Please verify your Settings (e.g. Broker Address, Broker Port & Client ID) and the user credentials!
org.eclipse.paho.client.mqttv3.MqttException: Connection lost
at org.eclipse.paho.client.mqttv3.internal.CommsReceiver.run(CommsReceiver.java:146) ~[org.eclipse.paho.client.mqttv3-1.1.0.jar:?]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_112]
Caused by: java.io.EOFException
at java.io.DataInputStream.readByte(Unknown Source) ~[?:1.8.0_112]
at org.eclipse.paho.client.mqttv3.internal.wire.MqttInputStream.readMqttWireMessage(MqttInputStream.java:65) ~[org.eclipse.paho.client.mqttv3-1.1.0.jar:?]
at org.eclipse.paho.client.mqttv3.internal.CommsReceiver.run(CommsReceiver.java:107) ~[org.eclipse.paho.client.mqttv3-1.1.0.jar:?]
... 1 more
2017-01-21 07:46:36,321  INFO --- ScriptsController              : Clear console.
2017-01-21 07:46:36,322 ERROR --- BrokerConnectService           : Connection lost

我对服务器和端口进行了Telnet测试,得到了一个空白终端。我猜这意味着有一个连接,因为否则我会有一个“连接失败”。消息日志插件没有显示任何内容,日志文件中也没有显示任何内容。

它的Debian和HiveMQ 3.2.2。

代码语言:javascript
复制
JAVA_OPTS:  -Djava.net.preferIPv4Stack=true -XX:-UseSplitVerifier -noverify -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/hivemq/heap-dump.hprof

-------------------------------------------------------------------------

2017-01-21 07:37:02,159 INFO  - Starting HiveMQ Server
2017-01-21 07:37:02,176 INFO  - HiveMQ version: 3.2.2
2017-01-21 07:37:02,178 INFO  - HiveMQ home directory: /opt/hivemq
2017-01-21 07:37:02,226 INFO  - Log Configuration was overridden by /opt/hivemq/conf/logback.xml
2017-01-21 07:37:12,013 INFO  - Loaded Plugin HiveMQ JMX Metrics Reporting Plugin - v3.0.0
2017-01-21 07:37:12,014 INFO  - Loaded Plugin HiveMQ MQTT Message Log Plugin - v3.0.0
2017-01-21 07:37:12,014 INFO  - Loaded Plugin HiveMQ Sys Topic Plugin - v3.0.0
2017-01-21 07:37:12,014 INFO  - Loaded Plugin HiveMQ JVM Metrics Plugin - v3.1.0
2017-01-21 07:37:12,038 INFO  - JMX Metrics Reporting started.
2017-01-21 07:37:12,099 INFO  - JMX Metrics Reporting started.
2017-01-21 07:37:12,109 INFO  - Starting TCP listener on address 192.168.0.12 and port 1883
2017-01-21 07:37:12,131 INFO  - Starting Websocket listener on address 192.168.0.12 and port 8000
2017-01-21 07:37:12,139 INFO  - Started TCP Listener on address 192.168.0.12 and on port 1883
2017-01-21 07:37:12,139 INFO  - Started Websocket Listener on address 192.168.0.12 and on port 8000
2017-01-21 07:37:12,140 INFO  - Started HiveMQ in 9967ms
2017-01-21 07:37:12,142 INFO  - No valid license file found. Using evaluation license, restricted to 25 connections.

编辑

好的,这是一个Nginx问题,因为没有SSL,我的JavaScript站点就能工作。应该可以将SSL用于http,而对websockets则不安全,正如我在这里看到的:

Nginx MQTT websocket代理1

Nginx MQTT websocket代理2

我试过那里的配置,但没有成功。

解决方案:--不需要带有HiveMQ的Nginx代理。问题是Firefox不接受websockets的自签名证书。将"network.websocket.allowInsecureFromHTTPS“设置为true将使其工作。在Chrome中,您会收到关于JavaScript安全性的消息,您可以接受它。因为我只使用Firefox,而且没有消息,所以花了几个小时才找出了问题所在。此外,泛美卫生组织的onFailure函数也没有出现。

EN

回答 1

Stack Overflow用户

发布于 2017-01-21 20:04:52

不幸的是,websocket支持尚未实现到MQTT.fx中。

如果您坚持通过websocket连接,您将不得不使用不同的MQTT-客户端。

干杯,

弗洛里安,来自HiveMQ团队。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41776637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档