TsgcWSPClient_sgc › Methoden › Subscribe
Abonniert den Client einem benutzerdefinierten Channel.
procedure Subscribe(const aChannel: String; const aGuid: String = '');
| Name | Typ | Beschreibung |
|---|---|---|
aChannel | const String | Name des zu abonnierenden Kanals. |
aGuid | const String | Optionale Guid der serverseitigen sgc-Protokoll-Zielinstanz. Leer lassen, um die Standardinstanz zu verwenden. |
Sendet eine Subscribe-Anfrage für den angegebenen Kanal. Wenn der Server das Abonnement bestätigt, wird das Ereignis OnSubscription ausgelöst. Nach dem Abonnieren werden auf dem Kanal veröffentlichte Nachrichten über OnEvent zugestellt.
aChannel wird vom Server als exakte Zeichenkette abgeglichen. MQTT-artige Wildcards wie topic1/# oder topic1/+ werden nicht interpretiert: Sie werden als literale Zeichen im Kanalnamen behandelt, sodass ein Client, der topic1/# abonniert hat, keine Nachrichten empfängt, die an topic1/sensorA veröffentlicht werden.
Um mehrere Kanäle in einem Aufruf zu abonnieren, trennen Sie sie durch ein Komma:
oProtocol.Subscribe('topic1/a,topic1/b,topic1/c');
Das Komma ist das Trennzeichen der Liste und kann daher nicht Teil eines Kanalnamens sein. Dieselbe kommagetrennte Syntax gilt für UnSubscribe sowie für die Argumente channel, exclude und include von Broadcast und Publish.
Der Server kann ein Kanalargument optional per Mask-Matching (* und ?, keine MQTT-Syntax) statt per exaktem Abgleich erweitern. Siehe TsgcWSPServer_sgc.UseMatchesMask. Für echte MQTT-Themenfilter mit #- und +-Semantik verwenden Sie stattdessen TsgcWSPClient_MQTT.
oProtocol.Subscribe('news');
// multiple channels in one call
oProtocol.Subscribe('topic1/a,topic1/b,topic1/c');