客户端报错: Could not connect: CONNECTION REFUSED IDENTIFIER REJECTED

环境: 开源版 EMQX:5.3.1
操作系统: linux aarch64
问题:
第三方公司反馈,连接我们的EMQX服务, 返回报错信息:
Could not connect: CONNECTION REFUSED IDENTIFIER REJECTED

EMQX日志:


more_than_one_channel_found 是当客户端使用 clean start = false 登录,想拿到之前的会话(channel)的订阅信息和没有发出去的消息,然后再退出之前的会话,保证emqx 内部一个 clientid 在同一时刻只能对应一个会话(channel)。
如果有多个客户端使用相同的 clientid 以非常近时间同时连接。就会有一个临时状态:在上一个 channel 没有退出的时候,又来了一个client 创建 channel。存在多个 channel。这样就会有这个告警。

但是出现这个告警时,他会在多个 channel 中选一个(第一个)来登录,其它的 channel 会被强制退出。保证有一个 clientid 能登录成功。

感谢官方回复!
那客户端那边报错: Could not connect: CONNECTION REFUSED IDENTIFIER REJECTED
和EMQX日志的警告信息有关系吗?
重点是这个报错 Could not connect: CONNECTION REFUSED IDENTIFIER REJECTED, 应该如何解决,是客户端的问题还是EMQX服务这边的问题?需要修改什么配置还是什么?谢谢

建议让客户端连的时候不要用同一个 clientid 并发连。特别是重连的时候。

但是不用一个客户端连接,不是会频繁创建很多客户端连接了吗,那样感觉emqx更加扛不住了

我的意思是用同一个客户端id重连时,不要并发一起重连,要顺序来做。不是说clientid不要用同一个,如果不用相同的id会话就不能用了