设备不停的订阅和取消订阅,异常登录


设备在海外,每几秒就订阅和取消订阅一次,造成在线状态异常,我使用的是EMQX4.4.1开源版本搭建的服务器,问题困扰很久了,不知道问题出在哪里

connection terminate, reason: {shutdown, takeovered}

这里是有两个客户端使用了相同的 clientid 上线,在互相踢。
每个客户端应该使用唯一的 clientid,不能使用相同 clientid。
此外这个客户端逻辑应该有上线后发送订阅报文的设计。所以出现了每几秒订阅取消订阅的情况。

上线后是有订阅的动作,clientId肯定是唯一,我数据库保存的数据都是使用clientid作为key,我在想,有没有可能,客户端登录后,还没有收到服务器的返回,认为自己登录失败,又再次登录订阅,导致这样循环的登录订阅?

客户端连接时的 clean_session(mqttv3) 或 clean_start(mqttv5) 为 true 还是 false
如果是 false 的话 takeovered 就是客户端重新上线接管了之前的 session

可以用 trace 功能对这个 client 开启追踪看一下上下线及 sub/unsub 的行为。