安卓 - 套接字 vs 轮询

6
作为我正在开发的Android应用程序的一部分,其中有一个聊天室功能。我们有一个服务器可以处理传入的消息并存储消息。是保持手机和服务器之间的套接字连接以便服务器可以向手机发送任何新消息更好,还是更好让手机轮询服务器获取新的聊天消息?
3个回答

4

针对随机发布数据的应用程序使用轮询是不好的解决方案。我的意思是,当您有像每5分钟一次这样离散发生的事件时,轮询数据很有用。但聊天不是这种情况,有些用户可能一个小时内只发布一次,而有些用户可以在2分钟内发布30次。

因此,请保持您的套接字开启。


1
轮询缺乏实时连接,而持久连接会耗费电池。我认为你要找的是“推送”和持久连接的组合。你可以通过推送唤醒手机,然后通过套接字建立连接来处理聊天。
我建议阅读this文章。我不确定它是否提到了c2dm,谷歌的推送服务。

你能解释一下你的说法“持久连接会耗电”吗? - Thinkisto
"持久连接会消耗电池,因为保持连接打开意味着您需要不断的资源使用。" - kuchi

0
如果你担心即时通讯,我建议保持套接字连接的开启状态。因为建立套接字连接需要时间,特别是当你使用GSM连接时。我曾经看到在3G网络上打开一个套接字需要10秒甚至更长时间,而在WiFi上则要快得多。

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