- 1
- 0
- 约4.53千字
- 约 7页
- 2026-10-12 发布于河北
- 举报
iOS即时通讯(IM)面试题及详细实战答案
一、基础原理篇(入门必问)
1.移动端IM常用传输协议有哪些?各自优缺点?项目中如何选型?
参考答案:
日常开发中主流用到三种协议,分别是TCP、WebSocket、MQTT,我会根据业务场景选型:
TCP是底层流式协议,可靠性极高,自带重传、ACK确认、拥塞控制,适合对消息可靠性要求极致的聊天场景。缺点是需要自己处理粘包、拆包、心跳、断网重连,开发成本高,原生IM底层基本都是基于TCP自定义私有协议。
WebSocket基于HTTP握手,全程长连接,兼容浏览器和移动端,协议简单、开发快,无需处理复杂底层逻辑。缺点是协议头部冗余比TCP私有协议大,高并发场景性能略差,适合快速迭代的轻量化IM、客服聊天场景。
MQTT是轻量发布订阅协议,功耗极低、数据包小,适合弱网、低功耗设备,比如物联网设备消息推送。缺点是不适合复杂聊天业务,消息交互灵活性不足。
我项目中核心聊天模块采用TCP私有协议,保障消息不丢、不乱序;临时客服聊天、活动弹窗消息使用WebSocket,兼顾开发效率和兼容性。
2.TCP为什么会出现粘包、拆包?iOS端如何解决?
参考答案:
TCP是流式传输,没有数据包边界,操作系统会根据缓冲区大小、网络情况合并或拆分数据,所以会出现粘包(多个数据包合并)、拆包(一个数据包拆分传输)问
原创力文档

文档评论(0)