环境信息
-
EMQX 版本:
-
操作系统及版本:
-
其他
小程序肯定走的是 websocket,8084 是 mqtt over websocket 端口,1883 是 mqtt over tcp 端口。
重启之后 session 会丢失,可以在每次连接 broker 之后,需要重新做一次订阅。具体原因你可以打开 emqx 的 debug 日志,仔细调查一下。
https://github.com/emqx/MQTT-Client-Examples/blob/master/mqtt-client-WebSocket/ws-mqtt.html
我按这个github的代码来,就可以断线重连了
clean: true, // true: 清除会话, false: 保留会话
但是我发现clean这个参数如果设置成false,emqx重启了,js客户端就监听不到消息,反之就可以
可是,实际业务场景是需要保留会话的呀
EMQX 开源版没有提供会话持久化能力,所以服务重启后会话会丢失。