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 连接且不发送或接收数据的影响?的主要内容,如果未能解决你的问题,请参考以下文章