FIELD NOTE / 01 · MQTT
设备接入时,为什么要先做好身份校验?
在水控项目里,设备能连上消息服务只是起点;服务还需要知道它是谁、能收发哪些消息。
每台设备使用自己的身份
设备 ID 适合用来定位设备,但不应单独作为接入凭据。为每台设备配置独立密钥后,服务端才能在连接时校验身份,也能在设备停用或凭据泄露时单独撤销。
权限要跟着设备走
通过身份校验后,还要限制设备可订阅和发布的主题范围。一个设备只应处理属于自己的命令与状态,避免设备之间互相读取或伪造消息。
把异常连接当作正常场景设计
设备会断网、重连,也可能因密钥错误被拒绝。服务端应明确拒绝匿名和无效设备连接,并对停用设备及时撤销权限;设备端则需要清楚地处理连接失败和恢复。
一个实用的检查顺序:确认设备身份 → 校验独立凭据 → 限制消息主题 → 验证撤销与重连行为。