在 MQTT 中,客户端通过 CONNECT 消息发起连接。
数据包的第一个字段是clientId:
客户端标识符(简称 ClientId)是每个连接到 MQTT 代理的 MQTT 客户端的标识符。正如标识符这个词已经暗示的那样,它应该是每个经纪人唯一的。经纪人使用它来识别客户端和客户端的当前状态。(图片和引用取自这里。)
现在假设在以下情况下我有两个客户端,客户端 X 和 Y。
- 经纪人推出,还没有客户。
- X 成功连接到具有
client-1id的代理,用户名是X。 - 现在,Y 尝试使用
client-1id进行连接,用户名是Y。
会发生什么?
- Broker 会根据clientId 认为X 进行了重复的连接尝试,属于异常行为。
- 不会发生任何非凡的事情。Y 连接成功,因为它使用了不同的 username。
- 不会发生任何非凡的事情。该券商将拒绝Ÿ连接尝试为给定的clientId已在使用。
