XMPPは初めてです。アプリケーションでチャットを提供するために、アンドロイドでスマックを使用しています。
smack 4.1 では、ストリーム管理のサポートが追加されたので、使用しました
XMPPTCPConnection.setUseStreamManagementDefault(true);
これを有効にすると、次のようになります:
03-27 00:50:54.945: D/SMACK(16991): SENT (5): <enable xmlns='urn:xmpp:sm:3' resume='true'/>
03-27 00:50:55.740: D/SMACK(16991): RECV (5): <enabled xmlns='urn:xmpp:sm:3' id='g2gCbQAAAAVTbWFja2gDYgAABZNiAAYRuGIAAW06' resume='true' max='300'/>
そのため、XEP 198 はクライアントとサーバー (ejabberd 15) の両方で正常に動作しています。
しかし、私の質問は->メッセージ(サーバーによって認識されない)を格納するための独自のコードをAndroid sqliteデータベースに記述しchat.sendMessage();
、接続が再接続されたときに手動で再送信する必要がありますか? または、この再送信部分は Smack 自体によって行われますか?
smack 4.1 で XEP 198 を使用するためのドキュメントはありませんでした。 XMPPTCPConnection.setUseStreamManagementDefault(true);
<a/>
サーバーから受信したメッセージをリッスンするために smack から利用できる方法はありますか?
yaximのソースコードを見たことがありますが、Smack 4.1 で行われている XEP 198 をサポートするために (パケットを送信することによって) 独自のコードを作成しているようです。
このサポートを有効にした後、何をすべきか教えてください。