TsgcWSPClient_MQTT方法 › Subscribe

Subscribe 方法

以请求的 QoS 将客户端订阅到一个或多个主题过滤器。

重载

重载 1

语法

function Subscribe(const aTopic: String; aQoS: TmqttQoS = mtqsAtMostOnce; const aSubscribeProperties: TsgcWSMQTTSubscribe_Properties = nil) : Word;

参数

名称类型描述
aTopicconst String要订阅的主题过滤器;支持单级(+)和多级(#)通配符。
aQoSTmqttQoS代理应为匹配消息传递的最大 QoS。默认为 mtqsAtMostOnce。
aSubscribePropertiesconst TsgcWSMQTTSubscribe_Properties可选的 MQTT 5.0 属性,例如订阅标识符、本地不转发标志、保留发布或保留处理。传入 nil 则使用默认值。

返回值

SUBSCRIBE 数据包的数据包标识符。将其与通过 OnMQTTSubscribe 报告的授权相关联,以了解代理实际分配的 QoS。(Word

备注

单主题重载,最常用的形式。入站消息通过 OnMQTTPublish(或 MQTT 5.0 的 OnMQTTPublishEx)呈现。如果代理不支持请求的 QoS 级别或 ACL 规则适用,代理可能会降级 QoS。

示例

MQTT.Subscribe('sensors/+/temperature', mtqsAtLeastOnce);

重载 2

语法

function Subscribe(aTopics: TsgcWSTopics): Word;

参数

名称类型描述
aTopicsTsgcWSTopics包含各自 QoS 设置的主题过滤器集合,作为单个 SUBSCRIBE 数据包发送。

返回值

批量 SUBSCRIBE 数据包的数据包标识符;用于关联通过 OnMQTTSubscribe 收到的所有授权。(Word

备注

批量重载,在一次往返中订阅多个过滤器。优先使用它,而非循环调用单个主题,以减少网络交互,并让代理有机会在单个 SUBACK 中返回完整的原因代码列表。

示例

oTopics := TsgcWSTopics.Create;
try
  oTopics.Add('sensors/#', mtqsAtLeastOnce);
  oTopics.Add('alerts/#', mtqsExactlyOnce);
  MQTT.Subscribe(oTopics);
finally
  oTopics.Free;
end;

返回方法