TsgcWSPClient_sgc › Methods › Subscribe
Subskrybuje klienta do niestandardowego kanału.
procedure Subscribe(const aChannel: String; const aGuid: String = '');
| Nazwa | Typ | Opis |
|---|---|---|
aChannel | const String | Nazwa kanału, do którego należy się subskrybować. |
aGuid | const String | Opcjonalny identyfikator GUID docelowej instancji protokołu sgc po stronie serwera. Należy pozostawić pusty, aby użyć wartości domyślnej. |
Wysyła żądanie subskrypcji dla podanego kanału. Gdy serwer potwierdzi subskrypcję, wywoływane jest zdarzenie OnSubscription. Po subskrypcji wiadomości publikowane w kanale są dostarczane przez zdarzenie OnEvent.
aChannel jest dopasowywany przez serwer jako dokładny ciąg znaków. Symbole wieloznaczne w stylu MQTT, takie jak topic1/# czy topic1/+, nie są interpretowane: są traktowane jako dosłowne znaki w nazwie kanału, więc klient subskrybujący topic1/# nie otrzyma wiadomości publikowanych do topic1/sensorA.
Aby zasubskrybować kilka kanałów w jednym wywołaniu, należy oddzielić je przecinkiem:
oProtocol.Subscribe('topic1/a,topic1/b,topic1/c');
Przecinek jest ogranicznikiem listy, więc nie może być częścią nazwy kanału. Ta sama składnia z listą oddzieloną przecinkami dotyczy również UnSubscribe oraz argumentów channel, exclude i include metod Broadcast i Publish.
Serwer może opcjonalnie rozwijać argument kanału za pomocą dopasowania maskowego (* i ?, nie składnia MQTT) zamiast dokładnego dopasowania. Zobacz TsgcWSPServer_sgc.UseMatchesMask. Aby uzyskać rzeczywiste filtry tematów MQTT z semantyką # i +, użyj TsgcWSPClient_MQTT.
oProtocol.Subscribe('news');
// multiple channels in one call
oProtocol.Subscribe('topic1/a,topic1/b,topic1/c');