开源的5.2版本,通过 mqttx 连上后,为什么出现偶尔出现重连情况。
我通过 webhook,得到了连接和断开连接时间,知道的。
通过 mqttx 连上后,没有任何订阅,和发送过任何数据。
使用 mqtt.js 会频繁出现,重新连接。
let options = {
username: "xxxxxx",
password: getToken(),
protocolVersion: 5,
keepalive: 30,
clientId: 'web-' + Math.random().toString(16).substr(2)
}
Shawn
2
需要打开 debug 日志级别,看看这个客户端的相关日志:
日志文件看 logs/emqx.log.*
这是 mqtt.js 断开连接,第一条日志:
msg: websocket_closed, mfa: emqx_ws_connection:websocket_close/2, line: 485, peername: 192.168.5.1:65073, clientid: web-8d92a6a9afc8c, reason: keepalive_timeout, tag: SOCKET
keepalive_timeout 心跳超时吗?
我把容器中的时间校准一下,再试试,不是是不是这个原因。
Shawn
4
这个不是心跳超时,是 websocket 断开了。日志上看是客户端主动断开的。
能再帮忙看一下吗?
ws.js:109 WebSocket connection to 'ws://192.168.5.128:8083/mqtt' failed: Close received after close
已断开Mqtt连接
在输出 已断开Mqtt连接
之前浏览器输出了上面那个错误。
Shawn
6
从客户端的日志上看不出什么来,你用 tcpdump 抓一个包来分析吧。