TsgcWSPClient_sgc › Yöntemler › Subscribe
İstemciyi özel bir kanala abone eder.
procedure Subscribe(const aChannel: String; const aGuid: String = '');
| Name | Type | Açıklama |
|---|---|---|
aChannel | const String | Abone olunacak kanalın adı. |
aGuid | const String | Hedef sunucu tarafı sgc protokol örneğinin isteğe bağlı Guid'i. Varsayılanı kullanmak için boş bırakın. |
Verilen kanal için bir abonelik isteği gönderir. Sunucu aboneliği onayladığında, OnSubscription olayı tetiklenir. Abone olduktan sonra, kanala yayınlanan mesajlar OnEvent aracılığıyla teslim edilir.
aChannel, sunucu tarafından birebir bir dize olarak eşleştirilir. topic1/# veya topic1/+ gibi MQTT tarzı joker karakterler yorumlanmaz: kanal adında düz karakterler olarak ele alınır, bu nedenle topic1/# kanalına abone olan bir istemci, topic1/sensorA kanalına yayınlanan mesajları almaz.
Tek bir çağrıda birden fazla kanala abone olmak için, kanalları virgülle ayırın:
oProtocol.Subscribe('topic1/a,topic1/b,topic1/c');
Virgül liste ayracıdır, bu nedenle bir kanal adının parçası olamaz. Aynı virgülle ayrılmış sözdizimi UnSubscribe için ve Broadcast ile Publish'in kanal, exclude ve include argümanları için de geçerlidir.
Sunucu, isteğe bağlı olarak bir kanal argümanını birebir eşleşme yerine maske eşleştirmesi (* ve ?, MQTT sözdizimi değil) kullanarak genişletebilir. Bkz. TsgcWSPServer_sgc.UseMatchesMask. # ve + semantiğine sahip gerçek MQTT konu filtreleri için bunun yerine TsgcWSPClient_MQTT kullanın.
oProtocol.Subscribe('news');
// multiple channels in one call
oProtocol.Subscribe('topic1/a,topic1/b,topic1/c');