TsgcWSPClient_MQTT › メソッド › Disconnect
セッションをクリーンに終了するために MQTT DISCONNECT パケットを送信します。
procedure Disconnect;
接続が切断された後に再接続しようとすると、reason code 0(正常切断)でない MQTT disconnect を使用し、Last Will メッセージの配信を抑制します。この WebSocket トランスポートはここでは閉じられません。ソケットを切断するには、親クライアントの Disconnect を呼び出してください。
MQTT.Disconnect;
procedure Disconnect(aReasonCode: Integer; aDisconnectProperties: TsgcWSMQTTDisconnect_Properties = nil);
| 名前 | タイプ | 説明 |
|---|---|---|
aReasonCode | Integer | ブローカーに報告される MQTT 5.0 理由コード(例:0 = 正常、4 = Will メッセージで切断、129 = 不正なパケット、139 = サーバーがシャットダウン中)。 |
aDisconnectProperties | TsgcWSMQTTDisconnect_Properties | セッション有効期限間隔、理由文字列、サーバーリファレンス、ユーザープロパティなどのオプションの MQTT 5.0 プロパティ。プロパティが不要な場合は nil を渡してください。 |
MQTT 5.0 のオーバーロードで、クライアントが離脱理由を通知できます。aReasonCode を 4 に設定すると、ブローカーに設定済みの Last Will Testament を発行するよう要求します。ゼロ以外のコードを指定すると、ブローカーは異常なクローズをログに記録します。セッションが MQTT 3.1.1 としてネゴシエートされた場合は無視されます。
oProps := TsgcWSMQTTDisconnect_Properties.Create;
try
oProps.ReasonString := 'client shutting down';
MQTT.Disconnect(0, oProps);
finally
oProps.Free;
end;