【问题标题】:Websockets for Android Chat Application用于 Android 聊天应用程序的 Websockets
【发布时间】:2014-07-08 03:49:21
【问题描述】:

我有兴趣为 Android 和可能的 iPhone 应用程序构建实时聊天应用程序。我对 websockets 做了一些背景研究,它们似乎是一个合理的选择。但是,请注意可以随时向用户发送消息,这对于聊天应用程序来说很常见,客户端服务器连接的套接字将永远不允许关闭,否则用户将被切断任何信息流和新消息。

我很好奇,以这种方式使用套接字的永久打开连接来构建我的应用程序会产生不利后果吗?

【问题讨论】:

    标签: android sockets websocket


    【解决方案1】:

    我建议仅在应用程序处于前台时使用套接字连接,一旦应用程序进入后台回退到 GCM 以唤醒设备,然后再次建立套接字连接。这样,应用程序不会占用太多电池。另外,我怀疑iOS是否会长时间允许套接字连接。 这是构建使用套接字连接和推送通知的聊天的示例代码 https://github.com/AppLozic/Applozic-Android-SDK

    【讨论】:

      【解决方案2】:

      客户端的主要缺点是无线电的电池消耗,因为这需要保持数据连接。请注意,这对于任何尝试进行推送的解决方案都是相同的,因此 WebSocket 和例如 WebSocket 之间没有真正的区别。 HTTP 长轮询。如果您希望消息立即到达,则需要建立连接。

      在服务器上,主要成本是 RAM。 WebSocket 服务器的设计与 HTTP 服务器不同,它们每个连接不使用一个线程,因此扩展到大量并行连接本身并没有问题。

      【讨论】:

      • 在任何通讯应用程序中,例如 Whatsapp,都可能发生电池耗尽。电池消耗是否很大,以至于它会阻止使用 websockets 构建聊天应用程序?
      • @Sauron - 我没有任何数字。很大程度上取决于您愿意接受的延迟。如果连接未使用,则无线电进入节能状态,并且在接收到消息时可能需要几秒钟才能回到快速传输状态。如果你是例如使用 ping 来永久保持快速连接,那么这会比让无线电进行节能工作消耗更多的电池。
      猜你喜欢
      • 2016-02-15
      • 1970-01-01
      • 1970-01-01
      • 2013-05-29
      • 2015-07-30
      • 2017-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多