2017-06-22 3 views
0

Ejabberedを使用してチャットアプリ& Androidクライアントに毎回ユーザーがアプリを入力します。サーバーに利用可能な状態で私の存在を送信します。&毎回ユーザーがアプリを離れる毎回、それ以降に送信されるオフラインメッセージを受け取ることができます。しかし、アプリケーションを終了するときにプレゼンスパケットを送信しますが、私は別のクライアントからチェックすると、オンラインのユーザーを見ることができます。私は複数の接続を疑うlogcatを見て生きている:Android Smack Ejabberd複数の接続の問題

はログアウト:

--------------------------------- 
06-22 12:36:42.473 2985-3052/ask.around D/SMACK: SENT (0): <presence id='R0C81-14' type='unavailable'><priority>1</priority><show>away</show></presence><r xmlns='urn:xmpp:sm:3'/> 
06-22 12:36:42.474 2985-3052/ask.around D/SMACK: SENT (0): <presence id='R0C81-15' type='unavailable'></presence> 
06-22 12:36:42.475 2985-3052/ask.around D/SMACK: SENT (0): <a xmlns='urn:xmpp:sm:3' h='5'/> 
06-22 12:36:42.486 2985-3052/ask.around D/SMACK: SENT (0): 
06-22 12:36:42.487 2985-3052/ask.around D/SMACK: SENT (0): </stream:stream> 
06-22 12:36:42.616 2985-3053/ask.around D/SMACK: RECV (0): <a h='5' xmlns='urn:xmpp:sm:3'/> 
06-22 12:36:42.692 2985-3053/ask.around D/SMACK: RECV (0): </stream:stream> 
06-22 12:36:42.693 2985-3271/ask.around D/SMACK: XMPPConnection closed (XMPPTCPConnection[[email protected]/48305568695274620153122] (0)) 

ログアウトしない:

06-22 12:02:01.952 2586-3299/ask.around D/SMACK: SENT (2): <presence id='86IU1-48' type='unavailable'><priority>1</priority><show>away</show></presence><r xmlns='urn:xmpp:sm:3'/><presence id='86IU1-49' type='unavailable'></presence><a xmlns='urn:xmpp:sm:3' h='6'/> 
06-22 12:02:01.952 2586-3299/ask.around D/SMACK: SENT (2): </stream:stream> 
06-22 12:02:02.032 2586-3300/ask.around D/SMACK: RECV (2): <a h='5' xmlns='urn:xmpp:sm:3'/> 
06-22 12:02:02.052 2586-3282/ask.around D/SMACK: RECV (1): <presence xml:lang='en' to='[email protected]/104236288900606474493066' from='[email protected]/105858598794378801093074' type='unavailable' id='86IU1-48'><priority>1</priority><show>away</show></presence><r xmlns='urn:xmpp:sm:3'/> 
06-22 12:02:02.053 2586-3281/ask.around D/SMACK: SENT (1): <a xmlns='urn:xmpp:sm:3' h='7'/> 
06-22 12:02:02.099 2586-3300/ask.around D/SMACK: RECV (2): </stream:stream> 
06-22 12:02:02.100 2586-2938/ask.around D/SMACK: XMPPConnection closed (XMPPTCPConnection[[email protected]/105858598794378801093074] (2)) 

私が作ってるんだ間違いが何であるか、私は成功したのlogcatに気づきましたログアウト数は常に0です。失敗した場合はnが2になります。複数の接続を作成していますか?またはNumberは接続の数ではありませんか?接続の数に問題がある場合はどうすれば私のアプリが生きているまで、単一のn個のインスタンスを作成するのですか?

答えて

0

あなたは接続する前に古いインスタンスを叫ぶことができますそれはあなたを助けるかもしれません。

if(mXmpptcpConnection!=null){ 
     mXmpptcpConnection.instantShutdown(); 
    }