2

私は混乱している1つのトピックについて文書化しています。私はAndroidでMQTTを使用しています。クライアントを正常に登録し、静的チャネルにメッセージを送信できます。2つのチャネルを作成し、クライアントを1つのチャネルにサブスクライブし、もう1つを別のチャネルにサブスクライブしました。すべてのチャネルが適切なメッセージを受信します。これに非常に満足しています。

今、私は動的チャネルを作成しようとしています。各クライアントがどのIDを持ち、どのチャネルを使用しているかを知るためです。その方法がわかりません。クライアントをモスキートブローカーに「登録」すると、「偽の」チャネルにサブスクライブできます(ブローカーがそのチャネルを作成するのは正しくない場合は理解できますか?)が、どのクライアントがどのチャネルをリッスンしているかを知るにはどうすればよいですか?アイデアありがとうございます。

4

1 に答える 1

4

わかりやすくするために、MQTT には静的チャネルまたは動的チャネルの概念が実際にはありません。トピックをパブリッシュまたはサブスクライブする場合、またはそのトピックの保持メッセージが存在する場合は存在しますが、そうでない場合は存在しません。

このプロトコルは、どのクライアントがどのトピックをリッスンしているかを判断する手段を提供しません。ただし、これをアプリケーション レベルで実装することもできます。クライアントが接続されているかどうかの検出は、ここで説明されているプレゼンス メカニズムを使用して行うことができます: http://mqtt.org/wiki/doku.php/presenceと同様のことを実行して、どのクライアントがどのクライアントにサブスクライブしているかを判断できるはずです。トピック。

于 2013-01-08T08:55:53.590 に答える