Accorde des autorisations sur un topic personnalisé à un appareil et active ou désactive la diffusion (broadcasting), l'abonnement délégué ainsi que la compression ou la décompression des données.
Remarques d'utilisation
Vous pouvez vous abonner aux messages de diffusion d'un topic personnalisé pour un maximum de 1 000 appareils. Pour dépasser cette limite, utilisez le protocole MQTT (Message Queuing Telemetry Transport) 5.0, activez la diffusion pour le topic personnalisé et définissez les messages comme conservés (retained messages).
Procédez comme suit :
Appelez l'opération UpdateTopicConfig et définissez le paramètre EnableBroadcast sur true pour autoriser la diffusion des messages par un topic personnalisé. Dans cet exemple, nous utilisons le topic personnalisé /broadcast/a1Q5XoY****/test.
Appelez l'opération Pub pour diffuser des messages vers le topic /broadcast/a1Q5XoY****/test et définissez le paramètre Retained sur true afin de conserver ces messages.
Appelez l'opération SubscribeTopic pour abonner un appareil au topic /broadcast/a1Q5XoY****/test. L'appareil reçoit ainsi les messages conservés du topic personnalisé.
Limites QPS
Vous pouvez appeler cette opération jusqu'à 100 fois par seconde par compte.
Les utilisateurs RAM d'un compte Alibaba Cloud partagent le quota du compte.
Débogage
Paramètres de la requête
|
Parameter |
Type |
Required |
Example |
Description |
| Action | String | Yes | UpdateTopicConfig | Opération à effectuer. Définissez la valeur sur UpdateTopicConfig. |
| ProductKey | String | Yes | a1Q5XoY**** | Clé ProductKey du produit auquel appartient l'appareil. |
| TopicFullName | String | Yes | /broadcast/a1Q5XoY****/test | Nom du topic personnalisé.
Important Pour diffuser des messages via un topic personnalisé, respectez les consignes suivantes :
|
| IotInstanceId | String | No | iot-0pp1n8t**** | ID de l'instance. Vous le trouverez dans l'onglet Overview de la console IoT Platform. Important
Pour plus d'informations, consultez la rubrique Overview. |
| EnableBroadcast | Boolean | No | true | Active ou désactive la fonctionnalité de diffusion. Valeurs possibles :
|
| Operation | String | No | SUB | Autorisations à accorder à l'appareil sur la catégorie de topic. Valeurs possibles :
|
| EnableProxySubscribe | Boolean | No | false | Si le paramètre Operation est défini sur SUB ou ALL, vous pouvez activer l'abonnement délégué. Valeurs possibles :
Une fois l'abonnement délégué activé pour un topic, IoT Platform récupère les détails du topic et abonne automatiquement l'appareil lors de sa connexion. |
| Codec | String | No | compress | Active la compression ou la décompression des données pour un topic personnalisé. Ce paramètre n'est disponible que pour les instances Enterprise Edition Standard ou Exclusive. Valeurs possibles :
Pour plus d'informations, consultez la rubrique Data compression. |
| Description | String | No | submit a test topic | Description du topic. Longueur comprise entre 1 et 100 caractères. |
Outre les paramètres spécifiques à l'opération, vous devez inclure les paramètres de requête communs. Pour plus d'informations, consultez la rubrique Common parameters.
Paramètres de la réponse
Parameter |
Type |
Example |
Description |
| Code | String | iot.system.SystemException | Code d'erreur renvoyé en cas d'échec de l'appel. Pour plus d'informations, consultez la section « Error codes » de cette rubrique. |
| Message | String | A system exception occurred. | Message d'erreur renvoyé en cas d'échec de l'appel. |
| RequestId | String | E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565 | ID de la requête. |
| Success | Boolean | true | Indique si l'appel a réussi. Valeurs possibles :
|
Exemples
Exemple de requête
https://iot.cn-shanghai.aliyuncs.com/?Action=UpdateTopicConfig
&EnableBroadcast=true
&ProductKey=a1Q5XoY****
&TopicFullName=/broadcast/a1Q5XoY****/test
&IotInstanceId=iot-0pp1n8t****
&<Common request parameters>
Exemple de réponse en cas de succès
XML format
<RequestId>E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565</RequestId>
<Code/>
<Success>true</Success>
JSON format
{
"RequestId": "E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565",
"Code": "",
"Success": true
}
Codes d'erreur
|
HttpCode |
Error Code |
Error message |
Description |
|
400 |
iot.message.broker.ParamCheckError |
Param check error. |
Le système n'a pas pu vérifier la valeur du paramètre. |
|
400 |
iot.message.broker.ProductCheckError |
Product check error. |
Le système n'a pas pu authentifier le produit. |
|
400 |
iot.message.broker.TopicConfigNumExceed |
Topic config num exceed. |
Le nombre de topics spécifiés dépasse la limite. |
|
400 |
iot.message.broker.SystemError |
System error. |
Une exception système s'est produite. |
|
400 |
iot.messagebroker.InvalidPubTopicFormat |
The pub topic cannot contain wildcard characters. |
Le nom du topic vers lequel vous souhaitez envoyer des messages ne peut pas contenir de caractères génériques. |
|
400 |
iot.messagebroker.InvalidOperationWithBroadcast |
The operation must be sub for enabling broadcast. |
L'appareil ne peut effectuer que l'opération Subscribe sur le topic pour lequel la fonctionnalité de diffusion est activée. |
|
400 |
iot.messagebroker.InvalidTopicWithBroadcast |
Topics for which broadcast is enabled cannot contain wildcard characters. |
Le nom d'un topic pour lequel la fonctionnalité de diffusion est activée ne peut pas contenir de caractères génériques. |
|
400 |
iot.messagebroker.InvalidOperationWithProxySubscribe |
The operation must be sub or all for enabling proxy subscription. |
L'appareil ne peut effectuer que l'opération Subscribe ou All sur le topic pour lequel la fonctionnalité d'abonnement délégué est activée. |
|
400 |
iot.messagebroker.InvalidTopicWithProxySubscribe |
Topics for which proxy subscription is enabled cannot contain wildcard characters. |
Le nom du topic pour lequel la fonctionnalité d'abonnement délégué est activée ne peut pas contenir de caractères génériques. |
|
400 |
iot.messagebroker.InvalidTopicWithCodec |
Topics for which compression and decompression are enabled cannot contain wildcard characters. |
Le nom du topic pour lequel la fonctionnalité de compression ou de décompression est activée ne peut pas contenir de caractères génériques. |
|
400 |
iot.messagebroker.InvalidInstanceWithCodec |
Only Exclusive Enterprise Edition instances support compression and decompression. |
Seules les instances Exclusive Enterprise Edition prennent en charge la fonctionnalité de compression ou de décompression des données. |
|
400 |
iot.prod.NotExistedProduct |
The specified product does not exist. |
Le produit que vous avez spécifié n'existe pas. |
Pour obtenir la liste des codes d'erreur, consultez la rubrique Codes d'erreur de service.