环境信息
- EMQX 版本:5.0
- 操作系统及版本:linux
- 其他
问题描述
订阅者订阅了系统主题$SYS/brokers/+/clients/#,权限都已开放了,正常设备上下线都能收的到。做异常测试的时候,发现不同设备使用同样的clientID登录,旧的连接会被踢下线,但旧连接下线的消息没有通知订阅者,只有新连接上线消息通知了订阅者
订阅者订阅了系统主题$SYS/brokers/+/clients/#,权限都已开放了,正常设备上下线都能收的到。做异常测试的时候,发现不同设备使用同样的clientID登录,旧的连接会被踢下线,但旧连接下线的消息没有通知订阅者,只有新连接上线消息通知了订阅者
因为踢掉session的顺序是新的连接建立完成之后发生的
1 设备A登录,使用client id 123456
2 另一个设备B登录,使用client id 123456
3 踢掉A的session,A离线
如果都推送消息就会是
1 client id 123456 上线
2 client id 123456 上线
3 client id 123456 离线
设备的状态很混乱,按照最后一条记录现在设备应该是离线的。
4.x版本中,有过这样的设计,后面我们也会改掉,会和5.0保持一致