请问为什么微信小程序连接mqtt服务器,官方给出的文档是连接8084端口,不是和客户端连接一样连1883端口吗?

环境信息

问题描述

配置文件及日志

小程序肯定走的是 websocket,8084 是 mqtt over websocket 端口,1883 是 mqtt over tcp 端口。

您好,使用 Node.js 连接到部署 | EMQX Cloud 文档
测试方法:前端sdk是可以订阅到消息,但emqx4.4.4重启后,sdk就没法监听到消息

重启之后 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 开源版没有提供会话持久化能力,所以服务重启后会话会丢失。