の基本を学ぶためにこのチュートリアルを読んPaho android Service API
でいます。テキストのどこかで、client.connect(context, callback
2 つのメソッドonSuccess()
とonFailure()
前述のように、この例では同期クライアントが使用されています (MqttAsyncClient ではなく MqttClient)。これは、接続などの要求がブロックされ、例外が返されるかスローされることを意味します。サーバーからメッセージを取得するためのポーリングまたは読み取りメソッドはありません。サーバーからのメッセージはいつでも到着する可能性があります。ライブラリーは、この動作を処理するためのコールバック・メカニズムを提供します。クライアントに登録された MqttCallback オブジェクト内のメソッドが適切に呼び出されます。MqttCallback は、別のクラスによって実装する必要があるインターフェースです...コールバック機能を有効にするには、コールバック オブジェクトをクライアントに登録します。これは、サーバーに接続する前に行うのが最も論理的です。
そして、私が言及した最後の2行を読んだ後、私は混乱しました。私が理解している限り、クライアントをカルバックに登録することの本質はconnectionLost,deliveryComplete,messageArrived
、サーバーの状態を「非同期的に」処理し、サーバーから読み取ることです。
さて、私の質問は、私が引用した最後の2行に関して、サーバー自体に接続する前にサーバーから状態を読み取るためにクライアントを登録するにはどうすればよいですか? つまり、「なぜ、「client.connect()」の前に「client.callback」を呼び出す必要があるのですか?」
誰でもこの点を明確にして説明してください。