TsgcWSPClient_sgc › Métodos › Subscribe
Assina o cliente a um canal personalizado.
procedure Subscribe(const aChannel: String; const aGuid: String = '');
| Name | Type | Descrição |
|---|---|---|
aChannel | const String | Nome do canal a ser assinado. |
aGuid | const String | Guid opcional da instância de protocolo sgc do lado do servidor de destino. Deixe vazio para utilizar o padrão. |
Envia uma requisição de subscribe para o canal fornecido. Quando o servidor confirma a subscrição, o evento OnSubscription é disparado. Após a subscrição, as mensagens publicadas no canal são entregues através de OnEvent.
aChannel é comparado pelo servidor como uma string exata. Wildcards no estilo MQTT, como topic1/# ou topic1/+, não são interpretados: são tratados como caracteres literais no nome do canal, de modo que um cliente inscrito em topic1/# não recebe mensagens publicadas em topic1/sensorA.
Para se inscrever em vários canais em uma única chamada, separe-os com vírgula:
oProtocol.Subscribe('topic1/a,topic1/b,topic1/c');
A vírgula é o delimitador da lista, portanto não pode fazer parte do nome de um canal. A mesma sintaxe delimitada por vírgula se aplica a UnSubscribe e aos argumentos de canal, exclude e include de Broadcast e Publish.
O servidor pode, opcionalmente, expandir um argumento de canal usando correspondência por máscara (* e ?, não sintaxe MQTT) em vez de uma correspondência exata. Veja TsgcWSPServer_sgc.UseMatchesMask. Para filtros de tópico MQTT reais com semântica de # e +, utilize TsgcWSPClient_MQTT.
oProtocol.Subscribe('news');
// multiple channels in one call
oProtocol.Subscribe('topic1/a,topic1/b,topic1/c');