PubNub长轮询与套接字 - 移动电池寿命

16

我最近开始在我的iOS应用程序中使用PubNub,非常满意。然而,我一直在看其他可用的选项,比如使用Websockets的Pusher和Realtime.co。相反地,PubNub使用长轮询(long polling)。我已经进行了一些速度比较,对于我的目的,我发现它们都足够快。

除此之外,PubNub还提供了一些不错的功能,例如消息历史记录和频道中所有人的列表,所以我倾向于选择他们。我的问题是,我是否应该担心像PubNub这样的长轮询解决方案对电池寿命和大量使用的影响?Websockets解决方案是否会更加节能?


2
关于在移动设备上使用PubNub和节省电池的好问题! - Stephen Blum
2个回答

13

在移动设备上使用PubNub时的电池节省

作为电池续航性能和效率的前言,与其他自主托管的websocket解决方案相比,PubNub是专为移动设备进行了优化的服务。 PubNub在移动电话上提供了一个追赶功能,可以自动重新传递错过的消息,特别是对于在移动设备之间移动并从3G / 4G切换到WiFi的设备。由于Websockets在常见情况下不够可靠,因此通常不建议在移动设备上使用,这就是为什么PubNub会自动选择最适合您设备的传输方式的原因;因此,您无需决定对于正在移动中的手机来说哪种传输方式最合理。

PubNub的电池节省模式

PubNub具有保持活动连接的时间非常长且设置为一小时的特点。每300秒(300,000ms)发送一次ping。这足以在移动性能和电池节省之间提供最佳混合方案。

移动设备上的电池节省提示

  1. 使消息尽可能小。
  2. 更少而不是经常发送消息。
  3. 只连接到一个频道而不是两个或更多频道。

自动传输检测

当需要特别是在移动设备上时,PubNub将自动为您选择最佳传输方式。去年2012年10月,在俄勒冈州波特兰市举行的KRTConf上进行了有关Websockets的有趣对话,我向您推荐https://speakerdeck.com/3rdeden/realtimeconf-dot-oct-dot-2012

如果这些信息有所帮助,请告诉我。


我确实喜欢PubNub在失去连接、重新连接等情况下似乎更具可操作性的特点。这可能是对于移动应用程序而言我应该关注的主要问题。然而,我对不同技术之间的电池寿命进行比较也很感兴趣。 - user1032657
1
你能详细解释一下“在常见情况下,Websockets 不太适合移动设备使用,因为它们不够可靠”这句话吗? - oberstet
感谢@pubNub的回答,它确实帮助了我们。但是我的应用程序仍然会导致电池问题。如果我删除pubnub,它就可以正常工作。所以我的问题是,我需要注意哪些其他事项?或者我可以检查一下我的代码是否有遗漏。 - PJR
@PJR 很好的问题:你可能会对APNs和GCM的移动推送通知感兴趣。这可能会提供你所需要的! :-) - Stephen Blum

2

我认为这是不正确的。请参见http://eon.businesswire.com/news/eon/20120927005429/en/Kaazing/HTML/HTML5

我是为Kaazing进行WebSocket和常规基于Http的消息传输比较测试的人。我发现使用WebSocket可以显著减少电池消耗。现在Kaazing拥有更多的技术,除了WebSocket之外,用于降低电池消耗。但即使您不使用Kaazing,使用WebSocket也仍然会看到一些电池消耗效率提高。我自己进行了实际测试,甚至对比了没有任何特殊电池优化算法的基本WS与http。


2
你写过并发布了你的研究成果吗?非常期待看到结果。 - leggetter
1
我同意Leggetter的观点。请按照他的建议发布你的发现,这样我们可以学到更多。 - Stephen Blum

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接