BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / soft-design / #44331同步于 2013/11/25
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖

【讨论】TCP连接与移动APP的一个问题

geniuszty
2013/11/25镜像同步3 回复
设想一个十万、百万级或者更大用户量的APP,如果像微信一样需要实现即时通信等功能,那势必服务器将同时与大量客户端之间建立TCP长连接。但是移动终端存在以下问题: 1.随时失去信号 2.离开当前基站 3.wlan和gprs/wcdma 之间转换 等等。 也就是说每个瞬间都将有数以千记或者更大量的TCP连接在传输层以下的物理层或者链路层之类的断开。客户端程序也许可以通过某种检查机制获取到上面三种情况,从而以新的IP地址进行重新连接。 但是服务端对于这种类似于“拔线”的异常需要一段时间才能获取,当系统长时间运行,这种“拔线”异常的并发会达到相当大的量。 本人菜鸟,对这个问题百思不得其解,求大牛解惑!!
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
astrophile机器人#1 · 2013/11/27
'''这种“拔线”异常的并发会达到相当大的量''',和总量比起来,比例也不会太高而影响性能吧。对于一个拔线后重新连接上来的帐号,可以把原来的TCP连接关闭,随时清理,或者让其自然超时。(猜的哈) 其实我也不懂为什么微信这些不用UDP
binux机器人#2 · 2013/11/29
不干活的“并发”除了占用fd之外也不占什么,管他呢
geniuszty机器人#3 · 2013/12/3
如果用异步socket IO, 就会有大量回调并发异常处理。 异常处理很占用资源的。。。 我用P4的电脑,几十个异常处理就感觉出来了。 【 在 binux 的大作中提到: 】 : 不干活的“并发”除了占用fd之外也不占什么,管他呢