客户机标识

客户机标识是用于标识 MQTT 客户机的 23 字节的字符串。 每个标识都必须唯一,以便一次只有一台已连接的客户机。 客户机标识必须只包含在队列管理器名称中有效的字符。 在满足这些约束的条件下,您可以使用任何标识字符串。 必须具备分配客户机标识的过程以及使用所选标识配置客户机的方法,这一点非常重要。

客户机标识用于管理 MQTT 系统。 由于可能要管理许多客户机,因此您需要能够快速标识特定客户机。 例如,如果某个设备发生故障,并且您已收到通知,那么可能是客户联系了帮助热线。 客户需要能够识别设备,并且您需要能够将该标识与通常连接到客户机的服务器相关联。

当您浏览 MQTT 客户机连接时,将使用客户机标识来标注每个连接。 要帮助确定将此标识映射到设备和服务器的最佳方式,请自我询问以下问题:

  • 维护和使用用于将每个设备映射到客户机标识和服务器的数据库是否方便?
  • 设备名称能否识别它所连接的服务器?
  • 是否需要用于将客户机标识映射到物理设备的查找表?
  • 客户机标识将标识特定设备、用户或者在客户机中运行的应用程序吗?
  • 如果客户将故障设备替换为新设备,那么新设备是否具有与旧设备相同的标识,或者是否分配了新标识? (如果更改了物理设备并保留相同的标识,那么会自动将未完成的发布和活动预订传输到新设备。)

您还需要一个系统以确保客户机标识是唯一的,并且您必须使用一个可靠的进程来设置客户机的标识。 如果客户机设备是一个没有用户界面的“黑匣”,那么可以使用客户机标识来制造设备,也可以在激活设备之前使用软件安装和配置过程来配置设备。

要使标识保持简短且唯一,可以使用 48 位设备 MAC 地址来创建客户机标识。 如果传输大小不是关键问题,那么可以使用剩余的 17 字节来简化地址管理。