基于asmack的android应用在关闭数据连接后重新打开,如何实现自动重连?
我是基于asmack做的android应用。服务端是openfire。目前的情况是,在网络状态稳定时,发送XMPP消息等功能一切正常。当我在手机设置中关闭数据连接,稍后再重新启用数据连接。这是从logcat里的信息看连接还是保持连接状态同时也是authenticated的。但是实际上此时已无法受到任何来自服务器的消息了。我用的是XMPPConnection。log里打印的是isConnected()和isAuthenticated()。始终都是true。
asmack里也有ReconnectionManager来实现自动重连。但是在我上述情况下,从log看也无法触发重连。请教下这里有没有高手知道如何处理这一情况,以保证XMPP连接在网络中断/恢复中能够长期可用? --------------------编程问答-------------------- 没有人做过这方面的开发吗? --------------------编程问答-------------------- 这个你得监听网络变化手动触发下 --------------------编程问答-------------------- 重新登录一下应该就会有了 要不然服务器还是保存上次登录的session
具体的还是要跟服务器联调一下比较快解决 --------------------编程问答-------------------- 你得在addConnectionListener()之前将ReconnectionManager加载到dalvik中
static{
try{
Class.forName("org.***.javax.***.ReconnectionManager");
}catch(Exception e){
}
}
具体是什么忘了,就是ReconnectionManger的地址;
然后就可以看到重连效果了 --------------------编程问答-------------------- 你得在addConnectionListener()之前将ReconnectionManager加载到dalvik中
static{
try{
Class.forName("org.***.javax.***.ReconnectionManager");
}catch(Exception e){
}
}
具体是什么忘了,就是ReconnectionManger的地址;
然后就可以看到重连效果了
=====================================================
我之前也碰到这个问题,也用楼上的方法处理了,在断开网络并重新联网时,确实可以重连,可是要想保证长时间的稳定连接,还是不可靠!我也还在寻找新的办法! --------------------编程问答--------------------
=====================================================
我之前也碰到这个问题,也用楼上的方法处理了,在断开网络并重新联网时,确实可以重连,可是要想保证长时间的稳定连接,还是不可靠!我也还在寻找新的办法!
请问楼主 现在解决了吗 --------------------编程问答-------------------- 监听网络变化,在网络断开时执行disconnect,网络恢复时再connect可以吗?
补充:移动开发 , Android