基于asmack的android应用在关闭数据连接后重新打开,如何实现自动重连?

sugarforever 2013-04-02 10:24:34
我是基于asmack做的android应用。服务端是openfire。目前的情况是,在网络状态稳定时,发送XMPP消息等功能一切正常。当我在手机设置中关闭数据连接,稍后再重新启用数据连接。这是从logcat里的信息看连接还是保持连接状态同时也是authenticated的。但是实际上此时已无法受到任何来自服务器的消息了。
我用的是XMPPConnection。log里打印的是isConnected()和isAuthenticated()。始终都是true。

asmack里也有ReconnectionManager来实现自动重连。但是在我上述情况下,从log看也无法触发重连。请教下这里有没有高手知道如何处理这一情况,以保证XMPP连接在网络中断/恢复中能够长期可用?
...全文
655 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
海绵宝宝_ 2015-03-05
  • 打赏
  • 举报
回复
请问楼主找到方法了吗?我也遇到了这个问题
fad121124978 2014-12-18
  • 打赏
  • 举报
回复
请问楼主找到方法了吗?我也遇到了这个问题
jiandanzhouzhou 2014-05-16
  • 打赏
  • 举报
回复
引用 8 楼 yangfeixien 的回复:
[quote=引用 5 楼 miaomiao47 的回复:] 你得在addConnectionListener()之前将ReconnectionManager加载到dalvik中 static{ try{ Class.forName("org.***.javax.***.ReconnectionManager"); }catch(Exception e){ } } 具体是什么忘了,就是ReconnectionManger的地址; 然后就可以看到重连效果了 ===================================================== 我之前也碰到这个问题,也用楼上的方法处理了,在断开网络并重新联网时,确实可以重连,可是要想保证长时间的稳定连接,还是不可靠!我也还在寻找新的办法!
找到新方法了吗?[/quote] 同样的问题和楼主 断网可以重连,但没法保证长时间稳定的链接 有办法了吗?
huangjz0802 2014-05-16
  • 打赏
  • 举报
回复
楼主,一样的问题啊,我的是在android4.2版本以上是可以看到重连的日志的,在低的版本就不行,不知道是哪里的问题!!!
杨_飞 2014-02-12
  • 打赏
  • 举报
回复
引用 5 楼 miaomiao47 的回复:
你得在addConnectionListener()之前将ReconnectionManager加载到dalvik中 static{ try{ Class.forName("org.***.javax.***.ReconnectionManager"); }catch(Exception e){ } } 具体是什么忘了,就是ReconnectionManger的地址; 然后就可以看到重连效果了 ===================================================== 我之前也碰到这个问题,也用楼上的方法处理了,在断开网络并重新联网时,确实可以重连,可是要想保证长时间的稳定连接,还是不可靠!我也还在寻找新的办法!
找到新方法了吗?
ameyume 2013-12-10
  • 打赏
  • 举报
回复
监听网络变化,在网络断开时执行disconnect,网络恢复时再connect可以吗?
kuaile863 2013-12-09
  • 打赏
  • 举报
回复
===================================================== 我之前也碰到这个问题,也用楼上的方法处理了,在断开网络并重新联网时,确实可以重连,可是要想保证长时间的稳定连接,还是不可靠!我也还在寻找新的办法![/quote] 请问楼主 现在解决了吗
小羊快跑 2013-10-07
  • 打赏
  • 举报
回复
你得在addConnectionListener()之前将ReconnectionManager加载到dalvik中 static{ try{ Class.forName("org.***.javax.***.ReconnectionManager"); }catch(Exception e){ } } 具体是什么忘了,就是ReconnectionManger的地址; 然后就可以看到重连效果了 ===================================================== 我之前也碰到这个问题,也用楼上的方法处理了,在断开网络并重新联网时,确实可以重连,可是要想保证长时间的稳定连接,还是不可靠!我也还在寻找新的办法!
Q23185954 2013-04-08
  • 打赏
  • 举报
回复
你得在addConnectionListener()之前将ReconnectionManager加载到dalvik中 static{ try{ Class.forName("org.***.javax.***.ReconnectionManager"); }catch(Exception e){ } } 具体是什么忘了,就是ReconnectionManger的地址; 然后就可以看到重连效果了
b87936260 2013-04-03
  • 打赏
  • 举报
回复
这个你得监听网络变化手动触发下
sugarforever 2013-04-03
  • 打赏
  • 举报
回复
没有人做过这方面的开发吗?
haoyizsw 2013-04-03
  • 打赏
  • 举报
回复
重新登录一下应该就会有了 要不然服务器还是保存上次登录的session 具体的还是要跟服务器联调一下比较快解决

80,357

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧