解决因手机客户端android网络不稳定而导致asmack不能自动重连接openfire的问题

asmact自动重连要能进行,那么asmact必须要使用ReconnectionManager类。可是在asmact的ConnectionConfiguration源码中,没有任何加载ReconnectionManager类的代码,所以在客户端单独使用如下设置是不起作用的:

1
configuration.setReconnectionAllowed(true); 

还需在代码前静态加载ReconnectionManager,重连才能正常工作:

1
2
3
4
5
6
7
static{   
        try{  
           Class.forName("org.jivesoftware.smack.ReconnectionManager");  
        }catch(Exception e){  
            e.printStackTrace();  
        }  
    }  

完成后测试,不管是断网还是openfire服务器重启情况下,客户端都会自动重连(如果直接在服务器上关闭会话,是不会重连的)。自动重连的时候,会自动登陆。所以所自己手动重连的代码全删掉吧

哥只能帮你到这里了。。。
转载请说明出处,,,,谢谢
http://my.eoe.cn/xiaoqingnian/archive/5303.html

你可能感兴趣的:(解决因手机客户端android网络不稳定而导致asmack不能自动重连接openfire的问题)