【发布时间】:2015-02-09 18:33:17
【问题描述】:
我是 android 开发的新手。我正在实现一个 XMPP 客户端来与我的服务器上运行的 XJabberd 服务通信。我相信它将保持与服务器的持久连接(afaik)需要定期发送保持活动消息。
这是对电池寿命的担忧吗?我相信确实如此,而 GCM 是减少这种影响的方法。但是,GCM 不保证 1. 立即交货和 2. 维护设备离线时发送的消息
是否有任何其他替代/方法可以减少对电池的影响。任何解释 Whatsapp 应用程序工程方面的文档?
【问题讨论】:
-
WhatsApp 不是 XMPP。通过完全控制服务器,他们可以很好地使用推送通知而不会丢失消息。
-
问题是您多久会通过发送服务器 ping 或空白保持活动来检查连接。这是造成持久连接导致电池消耗的主要因素。
-
@323go 我相信它一定是 XMPP 的一些变体。尽管如此,正如 Flow 所提到的,XMPP 客户端将需要继续向服务器发送保持活动消息,但我从未在我的最耗电应用程序中看到 Whatsapp。这是否意味着与其他应用相比,电池消耗是最小的
-
您错过了我评论的要点——像 WhatsApp 这样的私有筒仓不受的限制,与您遵循 XMPP 等标准时的限制相同。如果您可以完全控制服务器的行为方式,那么您不需要让客户端频繁地保持连接处于活动状态。客户端可以通过推送通知收到警报,或者可能会保持彗星连接以实现低延迟响应。
-
我想我现在明白你的意思了。只是为了确认我的理解是否正确,我相信您的建议是:为了节省电池,无需一直保持连接。但是,服务器可以发送推送通知(比如使用 GCM),并且在收到此通知时,客户端可以恢复连接。但是,这并不能保证即时通信。这对我来说听起来不错。谢谢!
标签: android xmpp battery whatsapp