TsgcWSPClient_sgc › Méthodes › Subscribe
Abonne le client à un canal personnalisé.
procedure Subscribe(const aChannel: String; const aGuid: String = '');
| Nom | Type | Description |
|---|---|---|
aChannel | const String
| Nom du canal auquel s'abonner. |
aGuid
| const String
| Guid facultatif de l'instance de protocole sgc côté serveur cible. Laissez vide pour utiliser la valeur par défaut. |
Envoie une requête d'abonnement pour le canal donné. Lorsque le serveur confirme l'abonnement, l'événement OnSubscription se déclenche. Après l'abonnement, les messages publiés sur le canal sont livrés via OnEvent.
aChannel est comparé par le serveur comme une chaîne exacte. Les jokers de type MQTT tels que topic1/# ou topic1/+ ne sont pas interprétés : ils sont traités comme des caractères littéraux dans le nom du canal, de sorte qu'un client abonné à topic1/# ne reçoit pas les messages publiés sur topic1/sensorA.
Pour s'abonner à plusieurs canaux en un seul appel, séparez-les par une virgule :
oProtocol.Subscribe('topic1/a,topic1/b,topic1/c');
La virgule est le délimiteur de liste, elle ne peut donc pas faire partie d'un nom de canal. La même syntaxe délimitée par des virgules s'applique à UnSubscribe ainsi qu'aux arguments channel, exclude et include de Broadcast et Publish.
Le serveur peut, en option, développer un argument de canal à l'aide d'une correspondance par masque (* et ?, pas la syntaxe MQTT) au lieu d'une correspondance exacte. Voir TsgcWSPServer_sgc.UseMatchesMask. Pour de vrais filtres de sujets MQTT avec la sémantique # et +, utilisez plutôt TsgcWSPClient_MQTT.
oProtocol.Subscribe('news');
// multiple channels in one call
oProtocol.Subscribe('topic1/a,topic1/b,topic1/c');