连接设备后都会断开设备再连接

版本:emqx5.3.2
问题1:连接设备后的输出,没有手动断开设备,但就先输出disconnect


问题2:这张是在mqttx,用设备的名称和密码登录,只要一连接设备就一直循环显示如图
image

这日志看起来是两个同样clientID的客户在互相挤下线

这个解决了问题2,但是问题1该怎么解决

如果同一个client id在其他设备上(或另一个客户端)已经连接,则这个设备再用同一个client id 进行连接,发生takeover 是正常的(先前连接被踢出)

他在 emqx 内部就是后上线的客户端把前一个客户端给挤下线了。所以会先输出 前一个客户端的disconnect 事件原因为 takenover,然后再输出后一个客户端的 connect 事件。

我是用代码模拟设备,只运行了一次,而且一直是同一个id

你图中客户端的端口21907 22584是不一样的,可以得出是两次不同的tcp连接,如果还是不确定(相信),也可以打开emqx的debug日志看看哦,上面会显示具体的流程的(日志不会骗你的)

我想问下,该如何让一个设备只有用一个端口号呢

不能的

因为emqx5.xxx的特性:client连接和broker断开都会发送disconnect包
而emqx3.x.x只有主动断开才发送disconnect包