こんにちは、私の問題は、デバイス(クライアント)の状態をオンラインにするかどうかを保つ必要があることです。Mqttクライアントが別のクライアントが接続されているかどうかを知る方法
私はクライアントIDで接続しており、そこから購読することができます。デバイスが切断されていることを知ることができますが、再び接続すれば、再び接続する方法を確認できます。
こんにちは、私の問題は、デバイス(クライアント)の状態をオンラインにするかどうかを保つ必要があることです。Mqttクライアントが別のクライアントが接続されているかどうかを知る方法
私はクライアントIDで接続しており、そこから購読することができます。デバイスが切断されていることを知ることができますが、再び接続すれば、再び接続する方法を確認できます。
短い答えは、(プロトコルレベルでは)あなたがしていないということです。
パブリッシャとサブスクライバは完全に認識していないため、メッセージは特定のサブスクライブするクライアントには送信されません。
少し長いバージョン:
あなたは保存されているメッセージとLWT(続く&新約聖書)
例えばで何かを行うことができます
それが接続しているとき、各クライアントにはtrue
のペイロードでは、次のトピック
online/<clientID>
に保持メッセージを発行しています。また、クライアントがネットワーク障害によって切断された場合、ペイロードfalse
を公開するLWTを設定します。クライアントが正常に切断された場合は、オフラインになる前に最後の操作としてfalse
のペイロードを公開する必要があります。
クライアントがオンラインであるかどうかを確認するには、ワイルドカードのトピックonline/+
を購読し、トピックの最後のセグメントであるclientidとその状態のペイロードを確認します。