1、聊天室场景下的移动端优化,项望烽 网易 五年 iOS IM 产品开发经验 网易 POPO 易信 云信,自我介绍,聊天室场景,在线人数多 单位时间内消息量巨大 消息流模式和 IM 有巨大差异,IM 场景下消息流,边缘服务器,在线状态服务器,边缘服务器,聊天室场景下消息流,聊天室服务器集群,优化环节,连接 登录 发送消息 接收消息,普通服务器连接模式,查询时间长 DNS 污染 依赖运营商,HTTP DNS,优点 可控 NSURLProtocol缺点 HTTPS 兼容性,本地部署服务器 IP,更新机制 淘汰机制 全异步,ips:“123.58.180.8”.”123.58.180.7”,聊天室场景,
2、心跳包优化 重连退避机制,连接保持,登录,安全的代价,TCP 握手,SSL/TLS 握手,登录,SYN,ACK,ClientHello,ClientKeyExchange ChangeCipherSpec Finished,Application Data,SYN ACK,ServerHello Certificate ServerHelloDone,ChangeCipherSpec Finished,Application Data,0ms,56ms,112ms,168ms,224ms,28ms,84ms,140ms,196ms,TCP-56ms,TLS-112ms,Sender,Recei
3、ver,安全的代价,证书大小:3 KB 左右,更快的安全登录,SYN,ACK,Shakehand + application data,SYN ACK,Shakehand,Application Data,Sender,Receiver,协议精简 二进制协议 压缩 流程优化 增量同步 按需同步,登录请求优化,稳定 快速 不丢包APP 层 ACK 重发 去重,发送消息,资源文件上传优化,2B 青年的文件上传,multipart request,response,资源服务器,移动网络下容易失败 失败后从 0 开始,普通青年的文件上传,分块上传 1,分块上传 2,分块上传 3,普通青年的问题,假设一
4、个文件有 512 KB,当前网速 100KB/S, RTT 为 200 ms,分片大小为 4KB,需要约 30 s,其中 rtt 耗时为25.6s,分片大小为 128KB,需要约 6 s,其中 rtt 耗时为 0.8s,T=(partsize+http_payload)*n/speed+rtt*n,文艺青年的做法 (一),part-size,2 *part-size,4 *part-size,文艺青年的做法 (二),PIPELINING,文艺青年的做法 (二),文艺青年的做法 (二),文艺青年的做法 (三),边录边传,单位时间内消息量大 大多数是短文本,接收消息,通知合并 后台计算 估算,接收消息优化,UI 组件,Talk is cheeeeeap,https:/ YOU,