小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

XMPP 中客戶端斷線及網(wǎng)絡(luò)異常處理

 WindySky 2016-03-09

1.網(wǎng)上關(guān)于網(wǎng)絡(luò)斷線這個(gè)問(wèn)題的處理的資料確實(shí)很少。有寫(xiě)說(shuō)在Mina的框架里修改Session close.但都沒(méi)有給出相關(guān)的處理。對(duì)于一個(gè)不是深入了解那框架的人,確實(shí)是件不容易的事情。

2.下面給出一個(gè)自己的處理方案.

就是利用Connection的ConnectionListener.

下面是具體寫(xiě)法

mConnection.addConnectionListener(new ConnectionListener() {
            //當(dāng)網(wǎng)絡(luò)斷線了,重新連接上服務(wù)器觸發(fā)的事件
            @Override
            public void reconnectionSuccessful() {
                // TODO Auto-generated method stub
                System.out.println("reconnectionSuccessful");
                 
            }
            //重新連接失敗
            @Override
            public void reconnectionFailed(Exception arg0) {
                // TODO Auto-generated method stub
                System.out.println("reconnectionFailed");
                 
            }
            //重新連接的動(dòng)作正在進(jìn)行的動(dòng)作,里面的參數(shù)arg0是一個(gè)倒計(jì)時(shí)的數(shù)字,如果連接失敗的次數(shù)增多,數(shù)字會(huì)越來(lái)越大,開(kāi)始的時(shí)候是14
            @Override
            public void reconnectingIn(int arg0) {
                System.out.println("time: "+arg0);
                // TODO Auto-generated method stub
                System.out.println("reconnectingIn");
                 
            }
            //這里就是網(wǎng)絡(luò)不正常斷線激發(fā)的事件
            @Override
            public void connectionClosedOnError(Exception arg0) {
                // TODO Auto-generated method stub
                System.out.println("connectionClosedOnError");
                 
            }
            //這里是正常關(guān)閉連接的事件
            @Override
            public void connectionClosed() {
                // TODO Auto-generated method stub
                System.out.println("connectionClosed");
                 
            }
        });

  不是像上面那樣,add了一個(gè)Listener搞定了,你要觸發(fā)這個(gè)listener就要在你想判斷聯(lián)網(wǎng)是否正常的時(shí)候,使用一下XMPPConnection.isConnected()這個(gè)方法。

他就會(huì)自動(dòng)檢測(cè)這個(gè)Connection并且處理Listener里面的事件

可以寫(xiě)一個(gè)線程來(lái)專(zhuān)門(mén)檢測(cè)比如:

new Thread(){
            public void run() {
                while(true){
                    try {
                        sleep(3*1000);
                        System.out.println("thread  info con: "+mConnection.isConnected());
                 
                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            };
        }.start();

  這就是3秒檢測(cè)一下,就不用去修改Openfire了,Connection默認(rèn)的情況下是會(huì)自動(dòng)連接上去的。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多