我有兴趣为Android和可能的iPhone应用程序构建实时聊天应用程序。我已经对websockets进行了一些背景研究,它们似乎是一个合理的选择。但是,注意到消息可以随时发送给用户,这对于聊天应用程序来说是常见的,然后将永远不允许客户端服务器连接的套接字关闭,否则用户将被切断任何信息流。和新消息。
我很好奇,使用套接字的永久开放连接以这种方式构建我的应用程序是否会产生不利影响?
答案 0 :(得分:2)
客户端的主要缺点是无线电的电池消耗,因为这需要保持数据连接。请注意,对于尝试执行推送的任何解决方案,这都是相同的,因此WebSockets与例如WebSocket之间没有真正的区别。 HTTP长轮询。如果您希望邮件立即到达,则需要连接。
在服务器上,主要成本是RAM。 WebSocket服务器的设计使得与HTTP服务器不同,它们不会在每个连接上使用一个线程,因此扩展到大量并行连接本身并不成问题。
答案 1 :(得分:2)
我建议仅在应用程序处于前台时使用套接字连接,并且一旦应用程序进入后台回退到GCM以唤醒设备然后再次建立套接字连接。这样,应用程序不需要太多电池。另外,我怀疑iOS是否会长时间允许套接字连接。 以下是使用套接字连接和推送通知构建聊天的示例代码 https://github.com/AppLozic/Applozic-Android-SDK