2016-07-09 5 views
0

こんにちは、私の問題は、デバイス(クライアント)の状態をオンラインにするかどうかを保つ必要があることです。Mqttクライアントが別のクライアントが接続されているかどうかを知る方法

私はクライアントIDで接続しており、そこから購読することができます。デバイスが切断されていることを知ることができますが、再び接続すれば、再び接続する方法を確認できます。

答えて

1

短い答えは、(プロトコルレベルでは)あなたがしていないということです。

パブリッシャとサブスクライバは完全に認識していないため、メッセージは特定のサブスクライブするクライアントには送信されません。

少し長いバージョン:

あなたは保存されているメッセージとLWT(続く&新約聖書)

例えばで何かを行うことができます

それが接続しているとき、各クライアントにはtrueのペイロードでは、次のトピック

online/<clientID> 

に保持メッセージを発行しています。また、クライアントがネットワーク障害によって切断された場合、ペイロードfalseを公開するLWTを設定します。クライアントが正常に切断された場合は、オフラインになる前に最後の操作としてfalseのペイロードを公開する必要があります。

クライアントがオンラインであるかどうかを確認するには、ワイルドカードのトピックonline/+を購読し、トピックの最後のセグメントであるclientidとその状態のペイロードを確認します。

関連する問題