解决asmack不能自动重连

来源:互联网 发布:网络舆情监控系统排名 编辑:程序博客网 时间:2024/04/30 07:00

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

 

configuration.setReconnectionAllowed(true);  


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

static{ try{   Class.forName("<a target=_blank name="baidusnap0" style="color: rgb(51, 102, 153);"></a><span style="color: black; background-color: rgb(255, 255, 102);">org.</span>jivesoftware<a target=_blank name="baidusnap4" style="color: rgb(51, 102, 153);"></a><span style="color: black; background-color: rgb(255, 102, 255);">.smack.</span>ReconnectionManager");}catch(Exception e){e.printStackTrace();}}


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

0 0
原创粉丝点击