打开 TCP 连接并且不发送或接收数据时,iPhone 电池会受到影响吗?

发布于 2024-12-26 03:44:19 字数 400 浏览 2 评论 0原文

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

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

什么对电池寿命更好?持续的 tcp 连接或多次 HTTP 请求。

谢谢

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

编辑2: 看起来 WhatsApp 是通过 TCP 连接来实现的

Im currently developing a chat client for the iphone.
Server-side there is a node.js with Socket.IO and on the iPhone an Socket.IO client
( https://github.com/DanLite/socket.IO-objc )

My Question is:
Will the iPhone battery affected with an open TCP connection and not sending or receiving data for like 3-4 Minutes?

What is better for battery life? A constant tcp connection or multiply HTTP requests.

Thanks

Edit:
I have a chat + other functions like (changing name, checking friends status, edit settings)

Edit 2:
Looks like WhatsApp doing it with a tcp connection

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

感悟人生的甜 2025-01-02 03:44:19

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

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

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

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

When TCP connection is opened both parties posses information about it (remote ip:port, local ip:port). That information is a mere data structure in the memory.
As long as there is no RST packet received or timeout occurred connection is considered to be opened.

When you send data over connection you start consuming CPU and force underlying wireless mobile network module to send signal hence consume battery.

That is why it is better to keep TCP connection for as long time as possible and prefer batching over chatty communication (combine several application messages).

On the other hand you should be prepared to the situation when network coverage is poor and you will have to constantly reopen TCP connection thus consume battery.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文