根据 MQTT 的 Topic 统计订阅该 Topic 的在线设备的数量。

使用场景

OnsMqttQueryClientByTopic 接口一般用于业务分析。业务上订阅某个特定 Topic 的设备一般是参与某个特殊活动的设备,可以根据 Topic 查询参与该活动的设备数量。

由于 OpenAPI 面向的场景是用户自定义管控开发,服务端会对过快的调用进行限流(每分钟 30 次),因此不要在业务的主流程中使用本接口。如需判断设备是否在线,请使用设备上下线通知功能。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

请求参数

名称 类型 是否必选 示例值 描述
Action String OnsMqttQueryClientByTopic

系统规定参数。取值:OnsMqttQueryClientByTopic。

ParentTopic String test

需查询的目标父级 Topic

SubTopic String /testmqtt

需查询的目标子级 Topic,如果没有则不填

InstanceId String post-cn-0pp12gl****

需查询的 Topic 所属的 MQTT 实例 ID。针对有独立命名空间的实例,该参数为必填。

返回数据

名称 类型 示例值 描述
MqttClientSetDo

设备在线信息数据结构

OnlineCount Long 4

订阅指定 Topic 的所有在线设备数量

RequestId String F7C7E53F-B753-4EAA-B204-5DDA173DE86F

为公共参数,每个请求的 ID 都是唯一的,可用于排查定位问题

示例

请求示例


http(s)://[Endpoint]/?Action=OnsMqttQueryClientByTopic
&<公共请求参数>

正常返回示例

XML 格式

<OnsMqttQueryClientByTopicResponse>
  <RequestId>F7C7E53F-B753-4EAA-B204-5DDA173DE86F</RequestId>
  <MqttClientSetDo>
        <OnlineCount>4</OnlineCount>
  </MqttClientSetDo>
</OnsMqttQueryClientByTopicResponse>

JSON 格式

{
	"RequestId":"F7C7E53F-B753-4EAA-B204-5DDA173DE86F",
	"MqttClientSetDo":{
		"OnlineCount":4
	}
}

错误码

访问错误中心查看更多错误码。