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 的行为。