TsgcWSPClient_MQTT › 方法 › UnSubscribe
从当前 MQTT 会话中移除一个或多个活跃的主题订阅。
function UnSubscribe(const aTopic: string; aUnsubscribeProperties: TsgcWSMQTTUnsubscribe_Properties = nil) : Word;
| 名称 | 类型 | 描述 |
|---|---|---|
aTopic | const string | 与之前 Subscribe 调用匹配的确切主题过滤器,要删除的订阅。 |
aUnsubscribeProperties | TsgcWSMQTTUnsubscribe_Properties | 可选的 MQTT 5.0 属性(如用户属性)。不需要时传入 nil。 |
分配给 UNSUBSCRIBE 数据包的数据包标识符;与 OnMQTTUnSubscribe 关联以读取代理的原因码。(Word)
单主题重载。过滤器必须与最初传递给 Subscribe 的过滤器匹配(包括通配符),否则代理将报告"No subscription existed"原因代码。正在传输的待处理消息在调用后仍可能被传递。
MQTT.UnSubscribe('sensors/+/temperature');
function UnSubscribe(aTopics: TsgcWSTopics): Word;
| 名称 | 类型 | 描述 |
|---|---|---|
aTopics | TsgcWSTopics | 要用单个 UNSUBSCRIBE 数据包取消订阅的主题过滤器集合。 |
批量 UNSUBSCRIBE 数据包的数据包标识符。(Word)
批量重载,适用于注销跟踪许多过滤器的客户端,或模式更改强制同时重新连接多个订阅时使用。集合中的每个条目在代理的 UNSUBACK 中生成自己的原因代码,通过 OnMQTTUnSubscribe 报告。
oTopics := TsgcWSTopics.Create;
try
oTopics.Add('sensors/#');
oTopics.Add('alerts/#');
MQTT.UnSubscribe(oTopics);
finally
oTopics.Free;
end;