TsgcWSPClient_MQTT › 方法 › Disconnect
向服务器发送 MQTT DISCONNECT 数据包以干净地结束会话。
procedure Disconnect;
使用原因码 0(正常断开)且不附加额外属性,执行标准 MQTT 断开操作。此重载适用于应用程序只需注销并抑制 Last Will 消息投递的场景。底层 WebSocket 传输不会在此处关闭;请调用父客户端的 Disconnect 来拆除套接字。
MQTT.Disconnect;
procedure Disconnect(aReasonCode: Integer; aDisconnectProperties: TsgcWSMQTTDisconnect_Properties = nil);
| 名称 | 类型 | 描述 |
|---|---|---|
aReasonCode | Integer | 向代理报告的 MQTT 5.0 原因码(例如 0 = 正常,4 = 带遗嘱消息断连,129 = 格式错误的数据包,139 = 服务器正在关闭)。 |
aDisconnectProperties | TsgcWSMQTTDisconnect_Properties | 可选的 MQTT 5.0 属性,如 Session Expiry Interval、Reason String、Server Reference 或 User Properties。不需要属性时传 nil。 |
MQTT 5.0 重载,允许客户端说明离开的原因。将 aReasonCode 设为 4 会要求 broker 发布已配置的遗嘱消息,任何非零代码将导致 broker 记录异常关闭。当会话协商为 MQTT 3.1.1 时忽略此参数。
oProps := TsgcWSMQTTDisconnect_Properties.Create;
try
oProps.ReasonString := 'client shutting down';
MQTT.Disconnect(0, oProps);
finally
oProps.Free;
end;