4

我目前正在为 iphone 开发一个聊天客户端。服务器端有一个带有 Socket.IO 的 node.js,在 iPhone 上有一个 Socket.IO 客户端(https://github.com/DanLite/socket.IO-objc

我的问题是:iPhone 电池是否会受到开放的 TCP 连接的影响,并且在 3-4 分钟内不发送或接收数据?

什么对电池寿命更好?一个恒定的 tcp 连接或多个 HTTP 请求。

谢谢

编辑:我有聊天+其他功能,例如(更改名称、检查朋友状态、编辑设置)

编辑 2:看起来 WhatsApp 使用 tcp 连接进行操作

4

1 回答 1

4

当 TCP 连接打开时,双方都拥有有关它的信息(远程 ip:port、本地 ip:port)。该信息只是内存中的数据结构。只要没有收到 RST 数据包或发生超时,连接就被认为是打开的。

当您通过连接发送数据时,您开始消耗 CPU 并强制底层无线移动网络模块发送信号,从而消耗电池。

这就是为什么最好尽可能长时间地保持 TCP 连接并且更喜欢批处理而不是闲聊通信(组合多个应用程序消息)。

另一方面,您应该为网络覆盖不佳的情况做好准备,您将不得不不断地重新打开 TCP 连接从而消耗电池。

于 2012-01-11T20:05:55.210 回答