调用该接口可设置自定义Topic的操作权限,及是否支持消息广播、是否开启代理订阅和是否开启压缩或解压缩。
使用说明
一个自定义Topic广播消息时,最多可被1,000个设备订阅。若后续需要新增更多设备订阅该自定义Topic的广播消息,可使用MQTT 5.0版本通信协议进行通信,通过设置自定义Topic支持消息广播和设置自定义Topic消息为保留消息来实现。
具体步骤为:
1. 调用本接口设置指定的自定义Topic(例如:/broadcast/a1Q5XoY****/test
)支持消息广播,即EnableBroadcast设置为true。
2. 调用Pub接口向该自定义Topic(例如:/broadcast/a1Q5XoY****/test
)发布广播消息,并设置为保留消息,即Retained设置为true。
3. 调用SubscribeTopic接口,新增设备订阅该自定义Topic(例如:/broadcast/a1Q5XoY****/test
),设备即可收到上一步向该自定义Topic发送的保留消息。
QPS限制
单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为100。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
请求参数
名称 |
类型 |
是否必选 |
示例值 |
描述 |
Action | String | 是 | UpdateTopicConfig | 系统规定参数。取值:UpdateTopicConfig。 |
ProductKey | String | 是 | a1Q5XoY**** | 要接收消息的设备所属产品的ProductKey。 |
TopicFullName | String | 是 | /broadcast/a1Q5XoY****/test | 自定义Topic。
重要 对于要广播消息的自定义Topic:
|
IotInstanceId | String | 否 | iot-0pp1n8t**** | 实例ID。您可在物联网平台控制台的实例概览页面,查看当前实例的ID。 重要
实例的更多信息,请参见实例概述。 |
EnableBroadcast | Boolean | 否 | true | 是否支持消息广播。
|
Operation | String | 否 | SUB | 设备对该Topic类的操作权限,取值:
|
EnableProxySubscribe | Boolean | 否 | false | Operation为SUB(订阅)或ALL(发布和订阅),可开启代理订阅。 取值:
开启代理订阅后,设备与物联网平台建连时,物联网平台查询已开启代理订阅的Topic,帮助设备完成订阅。 |
Codec | String | 否 | compress | 标准型和尊享型企业版实例下,可开启自定义Topic数据压缩或解压缩。 取值:
数据压缩功能详细内容,请参见数据压缩。 |
Description | String | 否 | submit a test topic | Topic的描述信息。长度限制为100字符(一个中文汉字占一个字符)。 |
调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见公共参数文档。
返回数据
名称 |
类型 |
示例值 |
描述 |
Code | String | iot.system.SystemException | 调用失败时,返回错误码。详细信息,请参见下文错误码。 |
Message | String | 系统异常 | 调用失败时,返回的出错信息。 |
RequestId | String | E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565 | 阿里云为该请求生成的唯一标识符。 |
Success | Boolean | true | 是否调用成功。
|
示例
请求示例
https://iot.cn-shanghai.aliyuncs.com/?Action=UpdateTopicConfig
&EnableBroadcast=true
&ProductKey=a1Q5XoY****
&TopicFullName=/broadcast/a1Q5XoY****/test
&IotInstanceId=iot-0pp1n8t****
&<公共请求参数>
正常返回示例
XML
格式
<RequestId>E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565</RequestId>
<Code/>
<Success>true</Success>
JSON
格式
{
"RequestId": "E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565",
"Code": "",
"Success": true
}
错误码
HttpCode |
错误码 |
错误信息 |
描述 |
400 | iot.message.broker.ParamCheckError | Param check error. | 参数校验错误。 |
400 | iot.message.broker.ProductCheckError | Product check error. | 产品鉴权失败。 |
400 | iot.message.broker.TopicConfigNumExceed | Topic config num exceed. | Topic数量超限。 |
400 | iot.message.broker.SystemError | System error. | 系统异常。 |
400 | iot.messagebroker.InvalidPubTopicFormat | The pub topic cannot contain wildcard characters. | 发送主题不能包含通配符。 |
400 | iot.messagebroker.InvalidOperationWithBroadcast | The operation must be sub for enabling broadcast. | 开启广播时操作只能是订阅。 |
400 | iot.messagebroker.InvalidTopicWithBroadcast | Topics for which broadcast is enabled cannot contain wildcard characters. | 开启广播的主题不能包含通配符。 |
400 | iot.messagebroker.InvalidOperationWithProxySubscribe | The operation must be sub or all for enabling proxy subscription. | 开启代理订阅的操作只能是订阅或所有。 |
400 | iot.messagebroker.InvalidTopicWithProxySubscribe | Topics for which proxy subscription is enabled cannot contain wildcard characters. | 开启代理订阅的主题不能包含通配符。 |
400 | iot.messagebroker.InvalidTopicWithCodec | Topics for which compression and decompression are enabled cannot contain wildcard characters. | 压缩/解压缩的主题不能包含通配符。 |
400 | iot.messagebroker.InvalidInstanceWithCodec | Only Exclusive Enterprise Edition instances support compression and decompression. | 只有尊享型实例支持压缩/解压缩。 |
400 | iot.prod.NotExistedProduct | The specified product does not exist. | 指定的产品不存在。 |
访问错误中心查看更多错误码。