Otorga permisos sobre un tema personalizado a un dispositivo y especifica si se habilitan las funciones de difusión, suscripción delegada y compresión o descompresión de datos.
Notas de uso
Puede suscribirse a los mensajes de difusión de un tema personalizado para un máximo de 1,000 dispositivos. Si necesita suscribirse a los mensajes de difusión de un tema personalizado para más de 1,000 dispositivos, utilice Message Queuing Telemetry Transport (MQTT) 5.0 para la comunicación, habilite la función de difusión para el tema personalizado y luego especifique los mensajes del tema como mensajes retenidos.
Siga estos pasos:
Llame a la operación UpdateTopicConfig y establezca el parámetro EnableBroadcast en true para permitir que un tema personalizado difunda mensajes. En este ejemplo, se utiliza el tema personalizado /broadcast/a1Q5XoY****/test.
Llame a la operación Pub para difundir mensajes al tema /broadcast/a1Q5XoY****/test y establezca el parámetro Retained en true para especificar los mensajes como retenidos.
Llame a la operación SubscribeTopic para suscribir un dispositivo al tema /broadcast/a1Q5XoY****/test. Así, el dispositivo podrá recibir los mensajes retenidos del tema personalizado.
Límites de QPS
Puede llamar a esta operación hasta 100 veces por segundo por cuenta.
Los usuarios de RAM de una cuenta de Alibaba Cloud comparten la cuota de la cuenta.
Depuración
Parámetros de solicitud
|
Parámetro |
Tipo |
Obligatorio |
Ejemplo |
Descripción |
| Action | String | Sí | UpdateTopicConfig | La operación que desea ejecutar. Establezca el valor en UpdateTopicConfig. |
| ProductKey | String | Sí | a1Q5XoY**** | El ProductKey del producto al que pertenece el dispositivo. |
| TopicFullName | String | Sí | /broadcast/a1Q5XoY****/test | El nombre del tema personalizado.
Importante Si desea usar un tema personalizado para difundir mensajes, tenga en cuenta lo siguiente:
|
| IotInstanceId | String | No | iot-0pp1n8t**** | El ID de la instancia. Puede consultar el ID de la instancia en la pestaña Overview de la consola de IoT Platform. Importante
Para obtener más información, consulte Overview. |
| EnableBroadcast | Boolean | No | true | Especifica si se habilita la función de difusión. Valores válidos:
|
| Operation | String | No | SUB | Los permisos que desea otorgar al dispositivo sobre la categoría de tema. Valores válidos:
|
| EnableProxySubscribe | Boolean | No | false | Si establece el parámetro Operation en SUB o ALL, puede habilitar la función de suscripción delegada. Valores válidos:
Si habilita la función de suscripción delegada para un tema, IoT Platform obtiene los detalles del tema y ayuda al dispositivo a suscribirse cuando lo conecta a IoT Platform. |
| Codec | String | No | compress | Especifica si se habilita la función de compresión o descompresión de datos para un tema personalizado. Este parámetro solo está disponible si utiliza una instancia Standard o Exclusive Enterprise Edition. Valores válidos:
Para obtener más información, consulte Data compression. |
| Description | String | No | submit a test topic | La descripción del tema. Debe tener entre 1 y 100 caracteres. |
Además de los parámetros de solicitud específicos de la operación anteriores, debe configurar los parámetros de solicitud comunes al llamar a esta operación. Para obtener más información sobre los parámetros de solicitud comunes, consulte Common parameters.
Parámetros de respuesta
Parámetro |
Tipo |
Ejemplo |
Descripción |
| Code | String | iot.system.SystemException | El código de error devuelto si la llamada falla. Para obtener más información, consulte la sección "Códigos de error" de este tema. |
| Message | String | A system exception occurred. | El mensaje de error devuelto si la llamada falla. |
| RequestId | String | E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565 | El ID de la solicitud. |
| Success | Boolean | true | Indica si la llamada fue exitosa. Valores válidos:
|
Ejemplos
Solicitudes de muestra
https://iot.cn-shanghai.aliyuncs.com/?Action=UpdateTopicConfig
&EnableBroadcast=true
&ProductKey=a1Q5XoY****
&TopicFullName=/broadcast/a1Q5XoY****/test
&IotInstanceId=iot-0pp1n8t****
&<Common request parameters>
Respuesta exitosa de muestra
Formato XML
<RequestId>E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565</RequestId>
<Code/>
<Success>true</Success>
Formato JSON
{
"RequestId": "E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565",
"Code": "",
"Success": true
}
Códigos de error
|
HttpCode |
Código de error |
Mensaje de error |
Descripción |
|
400 |
iot.message.broker.ParamCheckError |
Param check error. |
El sistema no pudo verificar el valor del parámetro. |
|
400 |
iot.message.broker.ProductCheckError |
Product check error. |
El sistema no pudo autenticar el producto. |
|
400 |
iot.message.broker.TopicConfigNumExceed |
Topic config num exceed. |
El número de temas especificado excede el límite. |
|
400 |
iot.message.broker.SystemError |
System error. |
Ocurrió una excepción del sistema. |
|
400 |
iot.messagebroker.InvalidPubTopicFormat |
The pub topic cannot contain wildcard characters. |
El nombre del tema al que desea enviar mensajes no puede contener caracteres comodín. |
|
400 |
iot.messagebroker.InvalidOperationWithBroadcast |
The operation must be sub for enabling broadcast. |
El dispositivo solo puede realizar la operación Subscribe en el tema con la función de difusión habilitada. |
|
400 |
iot.messagebroker.InvalidTopicWithBroadcast |
Topics for which broadcast is enabled cannot contain wildcard characters. |
El nombre de un tema con la función de difusión habilitada no puede contener caracteres comodín. |
|
400 |
iot.messagebroker.InvalidOperationWithProxySubscribe |
The operation must be sub or all for enabling proxy subscription. |
El dispositivo solo puede realizar la operación Subscribe o All en el tema con la función de suscripción delegada habilitada. |
|
400 |
iot.messagebroker.InvalidTopicWithProxySubscribe |
Topics for which proxy subscription is enabled cannot contain wildcard characters. |
El nombre del tema con la función de suscripción delegada habilitada no puede contener caracteres comodín. |
|
400 |
iot.messagebroker.InvalidTopicWithCodec |
Topics for which compression and decompression are enabled cannot contain wildcard characters. |
El nombre del tema con la función de compresión o descompresión habilitada no puede contener caracteres comodín. |
|
400 |
iot.messagebroker.InvalidInstanceWithCodec |
Only Exclusive Enterprise Edition instances support compression and decompression. |
Solo las instancias Exclusive Enterprise Edition admiten la función de compresión o descompresión de datos. |
|
400 |
iot.prod.NotExistedProduct |
The specified product does not exist. |
El producto especificado no existe. |
Para obtener una lista de códigos de error, consulte Códigos de error del servicio.