iPhone 电池是不是会受到开放 TCP 连接且不发送或接收数据的影响?

Posted

技术标签:

【中文标题】iPhone 电池是不是会受到开放 TCP 连接且不发送或接收数据的影响?【英文标题】:Will the iPhone battery affected with an open TCP connection and not sending or receiving data?iPhone 电池是否会受到开放 TCP 连接且不发送或接收数据的影响? 【发布时间】:2012-01-11 09:38:01 【问题描述】:

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

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

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

谢谢

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

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

【问题讨论】:

【参考方案1】:

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

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

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

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

【讨论】:

您是否忘记了网络流量需要收音机?该无线电需要通电才能接收网络数据包,但它可以在没有连接时关闭。 理论上,无线电消耗大量功率的唯一时间是在发射时。

以上是关于iPhone 电池是不是会受到开放 TCP 连接且不发送或接收数据的影响?的主要内容,如果未能解决你的问题,请参考以下文章

TCP连接是不是在局域网中受到限制?

旧iPhone变慢,这个锅该谁背,苹果还是锂电池?

Android中的Doze模式

实锤?旧iPhone升级换电池后,性能差异明显

如何以编程方式确定通过 USB 连接的 Iphone 的电池健康状况

iPhone终于要增大电池!不为续航,只为……