首页/网络/工控与物联网速查/MQTT连接报文的认证字段用法
物联网协议60 条

MQTT连接报文的认证字段用法

连接报文携带协议级别、清理启动标志、保活时间、客户端标识、遗嘱、用户名与密码,5.0 还增加属性集合与增强认证。客户端标识是会话关联的主键,多处复用会互相把对方挤下线。

工控与物联网速查网络更新于 2026-10-17
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌‌​‌‌​‌‌​‌​‌‌‌​​​‌​‌‌‌​‌​​​‌‌‌​‌​​​​‌​‌‌​‌​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​‌‌​‌‌‌​​‌‌​​‌​‌​‌‌​​​‌‌​‌‌‌​‌​​​​‌​‌‌​‌​‌‌​​​​‌​‌‌‌​‌​‌​‌‌‌​‌​​​‌‌​‌​​​​​‌​‌‌​‌​‌‌​​‌‌​​‌‌​‌​​‌​‌‌​​‌​‌​‌‌​‌‌​​​‌‌​​‌​​​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​

一次连接协商了什么

连接报文是客户端与代理之间最长的协商报文:除协议名与级别外,它还确定客户端标识、是否清理旧会话、保活时间、遗嘱消息,以及可选的身份凭据。5.0 增加了属性段,把会话过期时间、接收上限、最大报文长度与认证方式等参数一并带入,使连接阶段能表达更多策略。

字段与注意点

字段作用注意
协议名与级别声明使用的 MQTT 版本服务端不支持时返回不支持等级并断开
客户端标识会话主键,决定是否复用历史会话同一标识并发连接会把旧连接挤下线
清理启动是否丢弃既有会话状态置否才能复用订阅关系与未确认消息
保活时间连接活性约定设为 0 即禁用保活,公网环境不建议
遗嘱字段异常断开时代发的消息主题权限要与设备账号一致,否则发布被拒
用户名与密码基本身份校验未加密连接上是明文,不能单独依赖
5.0 属性会话过期、接收上限、最大报文、认证方式等服务端不支持时需按返回结果调整

典型使用场景

  • 设备认证:用设备级用户名密码或客户端证书区分每台设备
  • 会话复用:固定客户端标识加清理启动置否,断线后继续接收离线消息
  • 参数协商:5.0 用属性声明接收上限与最大报文长度,避免超限被拒
  • 故障定位:连接被拒时按返回的原因码判断是认证、版本还是参数问题
部分服务端会返回自己的保活上限或能力说明,客户端应以返回值为准调整参数,而不是继续沿用请求值。
用户名与密码在未加密连接上是明文传输,公网必须配合 TLS。5.0 的增强认证允许用挑战应答方式避免长期凭据在链路上传输。

易错点

  • 多台设备共用同一客户端标识:互相挤下线,表现为随机掉线
  • 把密码写进连接串或写入日志:明文凭据被长期留存,形成泄露面
  • 清理启动置否却不固定标识:产生大量无主会话,服务端资源被缓慢耗尽
  • 忽略服务端返回的保活或属性协商结果:客户端行为与协商值不符,出现难定位的超时

数据来源与参考

  • OASIS MQTT Version 3.1.1 规范(连接报文)
  • OASIS MQTT Version 5.0 规范(连接属性与原因码)

整理校对:其其网ICT文档中心 · 本页地址:docs.qiqicto.com/ics/mqtt-connect-auth-fields.html

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌‌​‌‌​‌‌​‌​‌‌‌​​​‌​‌‌‌​‌​​​‌‌‌​‌​​​​‌​‌‌​‌​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​‌‌​‌‌‌​​‌‌​​‌​‌​‌‌​​​‌‌​‌‌‌​‌​​​​‌​‌‌​‌​‌‌​​​​‌​‌‌‌​‌​‌​‌‌‌​‌​​​‌‌​‌​​​​​‌​‌‌​‌​‌‌​​‌‌​​‌‌​‌​​‌​‌‌​​‌​‌​‌‌​‌‌​​​‌‌​​‌​​​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​