使用相同的clientid登录时,旧登录被踢下线,没有通知系统主题订阅者

环境信息

  • EMQX 版本:5.0
  • 操作系统及版本:linux
  • 其他

问题描述

订阅者订阅了系统主题$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保持一致