
1) 【一句话结论】WebSocket适合高频、双向、低延迟的实时交互场景(如即时聊天),HTTP/2适合低频、单向或少量双向、需兼容HTTP生态的场景(如直播弹幕),选择时需结合消息频率、延迟要求、兼容性需求。
2) 【原理/概念讲解】
首先解释WebSocket:WebSocket是一种基于TCP的全双工、持久化连接协议,在HTTP握手后升级为“专线”连接,客户端与服务器可同时发送数据,无需重复建立连接,类似“两个人用专线通话,随时能说随时能听,不用每次都拨号”。
再解释HTTP/2:HTTP/2是基于HTTP的优化协议,通过二进制分帧、多路复用等技术提升性能,支持一个连接上同时传输多个请求/响应,本质还是“请求-响应”模式,连接是“多车道公路”,适合少量、不频繁的通信,或需利用HTTP生态的场景。
3) 【对比与适用场景】
| 特性/维度 | WebSocket | HTTP/2 |
|---|---|---|
| 定义 | 基于TCP的全双工、持久化连接协议 | 基于HTTP的优化协议,支持多路复用 |
| 连接方式 | 持久连接(单连接多消息) | 短期连接(默认5分钟超时),可保持长连接 |
| 通信模式 | 全双工(双向同时) | 半双工(请求-响应顺序) |
| 延迟 | 低(无连接建立开销) | 较低(多路复用减少连接建立) |
| 兼容性 | 需特殊协议,兼容性一般 | 完全兼容HTTP生态(浏览器、服务器均支持) |
| 使用场景 | 即时聊天、在线游戏、实时协作 | 直播弹幕、静态资源推送、少量消息通知 |
| 注意点 | 连接建立需握手(成本较高),需处理心跳 | 需保持连接(避免频繁建立),需处理HTTP/2头部压缩 |
4) 【示例】
以“聊天消息推送”为例:
5) 【面试口播版答案】
“面试官您好,关于WebSocket和HTTP/2在移动端实时通信的选择,核心结论是:WebSocket适合高频、双向、低延迟的实时交互场景(比如即时聊天),而HTTP/2适合低频、单向或少量双向、需兼容HTTP生态的场景(比如直播弹幕)。具体来说,WebSocket是基于TCP的全双工持久连接,像专线一样,能实时双向通信,但连接建立成本高,适合聊天这类频繁消息的场景;HTTP/2是基于HTTP的优化协议,通过多路复用减少连接建立,适合弹幕这类消息量不大、偶尔更新的场景。比如聊天消息推送用WebSocket,直播弹幕用HTTP/2,这样能平衡性能和兼容性。”
6) 【追问清单】
7) 【常见坑/雷区】