TsgcWSPClient_MQTT方法 › UnSubscribe

UnSubscribe 方法

从当前 MQTT 会话中移除一个或多个活跃的主题订阅。

重载

重载 1

语法

function UnSubscribe(const aTopic: string; aUnsubscribeProperties: TsgcWSMQTTUnsubscribe_Properties = nil) : Word;

参数

名称类型描述
aTopicconst string与之前 Subscribe 调用匹配的确切主题过滤器,要删除的订阅。
aUnsubscribePropertiesTsgcWSMQTTUnsubscribe_Properties可选的 MQTT 5.0 属性(如用户属性)。不需要时传入 nil。

返回值

分配给 UNSUBSCRIBE 数据包的数据包标识符;与 OnMQTTUnSubscribe 关联以读取代理的原因码。(Word

备注

单主题重载。过滤器必须与最初传递给 Subscribe 的过滤器匹配(包括通配符),否则代理将报告"No subscription existed"原因代码。正在传输的待处理消息在调用后仍可能被传递。

示例

MQTT.UnSubscribe('sensors/+/temperature');

重载 2

语法

function UnSubscribe(aTopics: TsgcWSTopics): Word;

参数

名称类型描述
aTopicsTsgcWSTopics要用单个 UNSUBSCRIBE 数据包取消订阅的主题过滤器集合。

返回值

批量 UNSUBSCRIBE 数据包的数据包标识符。(Word

备注

批量重载,适用于注销跟踪许多过滤器的客户端,或模式更改强制同时重新连接多个订阅时使用。集合中的每个条目在代理的 UNSUBACK 中生成自己的原因代码,通过 OnMQTTUnSubscribe 报告。

示例

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

返回方法