Android上持久移动连接的最佳做法?

Pau*_*yer 5 android xmpp real-time websocket

我正在考虑从Android应用程序使用持久连接到"云服务".这将一直在后台服务(或类似的东西)中运行.

我正在考虑使用网络插座或XMPP来保持连接,基本上寻找一个不会耗尽电池的轻量级连接.我希望能够将通知实时推送到此连接,因此不需要定期轮询.我知道C2DM和其他商业解决方案,但我希望自己推出.这就是我正在研究的网络插座(或其他轻量级连接)的原因.所以如果我走这条路,我应该注意哪些最佳实践?

我想的是:

  1. 如何防止电池耗尽,
  2. 如何处理IP地址变更等?

8bi*_*ide 10

这可能不是您正在寻找的答案,但我认为您可能想重新考虑您的架构.

您可以从移动平台中获得的东西

  • 您的IP地址随机更改
  • 您的物理互联网连接将随机丢失
  • 操作系统决定你没有做任何有用的事情并杀死你的过程
  • 连接类型随机变化(从WIFI到4G到3G到边缘),从而改变您的IP

基本上你的应用程序需要能够处理连接丢失,因为它几乎可以保证发生.

话虽如此,根据您对实时的定义,它完全可行.如果您愿意不断检查是否仍然存在可行连接,则可以将延迟时间保持在分钟范围内.但这会耗尽电池电量,你无能为力.

  • 重新思考架构并不是一个坏的答案:-)这是发布问题的全部要点,只是试图与其他人审查这个想法.如果只是一个坏主意,那就是很好的反馈.谢谢.但是,无论如何,我仍然对最佳实践感兴趣.C2DM就是这样做的,所以问题是:他们是如何做到的,他们的最佳做法是什么?以上评论是值得注意的事情. (4认同)