MQTT客户端及设备SDK相关问题

物联网核心套件 IoTCore

  • 旧版文档
  • 产品定价
  • 功能发布记录
  • 产品描述
    • 产品概述
    • 产品优势
    • 核心概念
    • 系统限制
  • 快速入门
    • 使用规则引擎将设备消息流转到业务服务器
    • 创建设备
    • 操作演示
    • 获取连接信息
    • 快速入门流程
    • 创建 IoT Core 实例
    • 使用 MQTT 模拟器连接及收发消息
  • 典型实践
    • 数据转发到函数计算服务CFC
    • 数据转发到用户 Kafka
    • 设备状态数据存储到时序数据库TSDB
    • 数据转发到百度消息服务BMS
  • 服务等级协议SLA
    • 服务等级协议SLA(V2.0)
  • API参考
    • 设备管理
    • 概述
  • 常见问题
    • MQTT客户端及设备SDK相关问题
    • 使用选择
  • 开发者指南
    • 设备侧
      • 通过 IoT Core 官方 SDK 接入
      • 通过开源MQTT Client SDK接入
    • 服务侧
      • IoT Core 日志 SDK (Java)
      • 概述
  • 操作指南
    • 设备接入与管理
      • 应用权限
      • 创建设备
      • 设备影子
      • 管理模板
      • 共享订阅
      • 设备预配
      • 管理设备
      • 通过开放协议接入
        • 使用证书鉴权建立MQTT连接
        • 通过CoAP发布消息
        • 通过MQTT连接及收发消息
        • 通过HTTP发布消息
    • 实例管理
      • 修改实例
      • 创建实例
      • 停止及启动实例
      • 删除实例
    • 运维管理
      • 日志服务
    • 规则引擎
      • 常用查询语句示例
      • 数据目的地管理
      • 数据查询语法和函数
      • 操作步骤
      • 数据目的地
      • 数据筛选
      • 概述
所有文档
menu
没有找到结果,请重新输入

物联网核心套件 IoTCore

  • 旧版文档
  • 产品定价
  • 功能发布记录
  • 产品描述
    • 产品概述
    • 产品优势
    • 核心概念
    • 系统限制
  • 快速入门
    • 使用规则引擎将设备消息流转到业务服务器
    • 创建设备
    • 操作演示
    • 获取连接信息
    • 快速入门流程
    • 创建 IoT Core 实例
    • 使用 MQTT 模拟器连接及收发消息
  • 典型实践
    • 数据转发到函数计算服务CFC
    • 数据转发到用户 Kafka
    • 设备状态数据存储到时序数据库TSDB
    • 数据转发到百度消息服务BMS
  • 服务等级协议SLA
    • 服务等级协议SLA(V2.0)
  • API参考
    • 设备管理
    • 概述
  • 常见问题
    • MQTT客户端及设备SDK相关问题
    • 使用选择
  • 开发者指南
    • 设备侧
      • 通过 IoT Core 官方 SDK 接入
      • 通过开源MQTT Client SDK接入
    • 服务侧
      • IoT Core 日志 SDK (Java)
      • 概述
  • 操作指南
    • 设备接入与管理
      • 应用权限
      • 创建设备
      • 设备影子
      • 管理模板
      • 共享订阅
      • 设备预配
      • 管理设备
      • 通过开放协议接入
        • 使用证书鉴权建立MQTT连接
        • 通过CoAP发布消息
        • 通过MQTT连接及收发消息
        • 通过HTTP发布消息
    • 实例管理
      • 修改实例
      • 创建实例
      • 停止及启动实例
      • 删除实例
    • 运维管理
      • 日志服务
    • 规则引擎
      • 常用查询语句示例
      • 数据目的地管理
      • 数据查询语法和函数
      • 操作步骤
      • 数据目的地
      • 数据筛选
      • 概述
  • 文档中心
  • arrow
  • 物联网核心套件IoTCore
  • arrow
  • 常见问题
  • arrow
  • MQTT客户端及设备SDK相关问题
本页目录
  • 请问是否有基于FreeRTOS或者RTX操作系统的MQTT SDK源码?
  • 为什么publish的QOS等级为2后,则会断开服务?
  • 与 IoT Core 服务连接成功,往一个主题发送消息,就直接断开。
  • 连接服务时,出现连接协议错误。
  • 遗嘱消息的触发条件有哪些?
  • MQTT客户端网络连接异常,但在keepalive时间内恢复,客户端是否需要重新建立MQTT连接?
  • 推送消息时鉴权方式是什么?会对服务功能有哪些影响?
  • 推送消息鉴权验证时发现操作(删除)订阅设备模版中对应订阅主题权限后,仍旧能够收到对应主题离线消息?
  • Error日志:Retain flag not supported

MQTT客户端及设备SDK相关问题

更新时间:2025-08-21

请问是否有基于FreeRTOS或者RTX操作系统的MQTT SDK源码?

我们提供了 C 的 SDK https://github.com/baidu/iot-sdk-c

另外也可以选择 paho 的开源版本,提供了多个版本的C/C++ client,有的是支持posix标准的(unix、linux、windows),有的是支持嵌入式系统的。可以参考这个连接:https://www.eclipse.org/paho/clients/c/embedded/

为什么publish的QOS等级为2后,则会断开服务?

目前暂不支持Qos=2的服务。

与 IoT Core 服务连接成功,往一个主题发送消息,就直接断开。

此情况一般出现在对应主题无 pub 权限。请检查对应模板中主题权限的配置。

连接服务时,出现连接协议错误。

大多是由于选择的端口和期望的协议不一致,正确端口号是TCP:1883, TLS:1884,Websocket:8884。

遗嘱消息的触发条件有哪些?

遗嘱(Will Message)消息必须被存储在服务端并且与这个网络连接关联。网络连接关闭时,服务端必须发布这个遗嘱消息,除非服务端收到Client发送的DISCONNECT报文。

遗嘱消息发布的条件,包括但不限于:

  • 服务端检测到了一个I/O错误或者网络故障。
  • 客户端在保持连接(Keep Alive)的时间内未能通讯。
  • 客户端没有先发送DISCONNECT报文直接关闭了网络连接。
  • 由于协议错误服务端关闭了网络连接。

MQTT客户端网络连接异常,但在keepalive时间内恢复,客户端是否需要重新建立MQTT连接?

需要,如果MQTT客户端异常断开,都需要重新建立MQTT连接并重新订阅主题。

如果MQTT客户端cleansession=false,连接异常断开后,服务器会维护session信息,重新连接后不需要再订阅主题。

推送消息时鉴权方式是什么?会对服务功能有哪些影响?

推送消息鉴权是对订阅端接收消息进行鉴权,会在设备订阅主题时鉴权成功订阅主题后,在主题消息最终推送订阅端时再次进行鉴权。主要影响表现在clean session =false的订阅端的离线消息,对于clean session=false的订阅端,根据协议在设备断开连接后仍旧能够接收到订阅主题的消息(离线消息)并在设备再次连接后收到这些离线消息,如果在设备离线期间对于设备模版存在管理操作导致订阅主题权限变化如删除主题权限,将会导致对应主题消息不会被推送到最终订阅端设备。

推送消息鉴权验证时发现操作(删除)订阅设备模版中对应订阅主题权限后,仍旧能够收到对应主题离线消息?

需要确认下设备模版是否存在#,+等类型统配订阅主题包含对应具体订阅主题,如果存在则对核心套件服务端而言对具体主题的消息推送时鉴权时具体主题属于统配主题可匹配项,相当于仍旧具有对应主题权限,所以仍旧可以收到对应具体主题的离线消息

Error日志:Retain flag not supported

当发布者发布的消息Retain设置成true时,在IOT Core的日志中可能会出现Error日志,日志内容为Retain flag not supported。这是因为在IOT Core中,Retain消息功能是默认未开通的。您可以提交工单提供下Retain消息的使用场景和用量预估,需要评估后即可开通。

在正式开放前, Retain 消息暂时与普通消息价一致,具体请查看价格详情页面。

上一篇
API参考
下一篇
使用选择