Dev*_*Dev 6 android xmpp asmack
在Internet上搜索了很多之后我们得出了一个结论,为了确保与XMPP服务器保持连接,我们必须创建一个服务,
我们已经创建了一个使用Smack库连接XMPP服务器,并且它可以与移动和Wi-Fi网络一起使用.
每次你做出一些设计方法总是很重要!!!,Smack已经隐藏地实现了这个重新连接机制,在那里监听连接,如果连接丢失,Smack会尝试在某个时间间隔重新连接XMPP服务器.
我们的用例场景::
INTERNET连接可以是因为wifi或数据网络,这里如果连接转是空闲状态有人关闭屏幕cpu进入睡眠现在任何数据都发送到服务器上这个连接将没有响应,因为服务器不再是在监听客户端,在客户端XMPP连接已经处于连接模式,连接监听器没有检测到与服务器的任何断开连接,所以这里流程完成了.
在INTERNET上搜索后,我们发现解决这个问题的可能解决方法是在修复后ping服务器(我们使用1分钟作为修复周期),检测到ping失败后,我们实现了与smack相同的重新连接机制(从Smack重新连接机制中获取的想法)本身)通过利用计时器任务.
问题::我们唯一的问题是电池耗尽,如果用户仍然与INTERNET连接并且重新连接间隔增加,它将耗尽电池.
1).上述问题的可能解决方案是什么?
2).我们应该采取另一种方法吗?
如何在Android中创建服务与XMPP服务器保持持久的Xmpp连接?
两件事情
关于的评论
使用1分钟作为Ping间隔是很多的方式!正如您所经历的那样,它会非常快地耗尽电池电量.一个合理的ping间隔是> 15分钟,我建议30分钟.Smack 4.1还将确保仅在没有收到带有Ping间隔的节的情况下才发送ping.
如果可能,也使用XEP-0198:流管理.
我建议您查看遵循这些指南的各种开源应用程序,并在不耗尽用户电池的情况下实现稳定,持久的连接1.
1:遵循这些建议不能保证电池耗尽.还有更多因素需要考虑.
| 归档时间: |
|
| 查看次数: |
2091 次 |
| 最近记录: |