0

私は以下のコードを持っています -->

var last_will = new Paho.MQTT.Message("last message");
last_will.destinationName = "Bridge123";
client = new Paho.MQTT.Client("broker.mqttdashboard.com", Number("8000"), "AX123");
client.onConnectionLost = onConnectionLost;
client.onMessageArrived = onMessageArrived;
client.connect({onSuccess:onConnect} , {willMessage:last_will});

クライアントを切断すると、作成したトピックに最後の意志メッセージが送信されると予想されます.. Paho の mqtt バージョン -3.1 を使用しています.. Websocket は正常に作成されていますが、最後の意志メッセージが表示されません ...

誰でもここを案内できますか?

全体像を追加する:

ローカル環境で IOT デバイスの現在のオン/オフ ステータスを収集し、 mqtt を介してトピック「IOT1」に発行する Python スクリプト p があります。デバイスに過負荷がかかるため、Python スクリプトを常に実行して IOT デバイスからステータスを取得したくありません。これを解決するには、「IOT1」トピックのアクティブなクライアントを見つけて、リクエストを送信するスレッドを実行または一時停止する必要がありますローカル環境の IOT デバイス .. これを知る最後の will メッセージ以外の方法はありますか?

4

2 に答える 2

2

Last Will および Testament メッセージは、クライアントが正常に切断されない場合にのみ発行されます。

正常に接続を閉じると、送信されません。

サーバーがタイムアウト時間内にメッセージまたは ping パケットの受信に失敗した場合にのみ、サーバーはメッセージを送信します。

于 2014-12-25T21:31:27.613 に答える