TsgcWSPClient_sgcMethods › Subscribe

Subscribe 方法

订阅客户端到自定义频道。

语法

procedure Subscribe(const aChannel: String; const aGuid: String = '');

参数

名称类型描述
aChannelconst String要订阅的频道名称。
aGuidconst String目标服务器端 sgc 协议实例的可选 Guid。留空以使用默认值。

备注

发送对指定频道的订阅请求。当服务器确认订阅后,将触发 OnSubscription 事件。订阅后,发布到该频道的消息将通过 OnEvent 传递。

aChannel 由服务器按精确字符串进行匹配。诸如 topic1/#topic1/+ 之类的 MQTT 风格通配符不会被解析:它们会被当作频道名称中的字面字符处理,因此订阅了 topic1/# 的客户端不会收到发布到 topic1/sensorA 的消息。

要在一次调用中订阅多个频道,请使用逗号分隔:

oProtocol.Subscribe('topic1/a,topic1/b,topic1/c');

逗号是列表分隔符,因此不能作为频道名称的一部分。UnSubscribe 以及 BroadcastPublish 的频道、排除和包含参数也采用相同的逗号分隔语法。

服务器可以选择使用掩码匹配(*?,非 MQTT 语法)来扩展频道参数,而不是精确匹配。请参阅 TsgcWSPServer_sgc.UseMatchesMask。如需具有 #+ 语义的真正 MQTT 主题过滤器,请改用 TsgcWSPClient_MQTT

示例

oProtocol.Subscribe('news');

// multiple channels in one call
oProtocol.Subscribe('topic1/a,topic1/b,topic1/c');

返回方法