我正在为iphone开发聊天客户端。 服务器端有一个带有Socket.IO的node.js和一个带有Socket.IO客户端的iPhone (https://github.com/DanLite/socket.IO-objc)
我的问题是: iPhone电池是否会受到打开的TCP连接的影响而不会像3-4分钟一样发送或接收数据?
电池寿命更好?一个恒定的tcp连接或多个HTTP请求。
由于
编辑: 我有聊天+其他功能,如(更改姓名,查看朋友状态,编辑设置)
编辑2: 看起来WhatsApp使用tcp连接进行操作
答案 0 :(得分:4)
当打开TCP连接时,双方都拥有相关信息(远程ip:端口,本地IP:端口)。该信息仅仅是存储器中的数据结构。 只要没有收到RST数据包或发生超时,就认为连接被打开。
当您通过连接发送数据时,您开始消耗CPU并强制底层无线移动网络模块发送信号,因此消耗电池。
这就是为什么最好尽可能长时间保持TCP连接并且更喜欢通过繁琐的通信进行批处理(结合多个应用程序消息)。
另一方面,您应该准备应对网络覆盖率较差的情况,并且您必须不断重新打开TCP连接,从而消耗电池。