2026/5/10 23:36:57
网站建设
项目流程
网络通信中的 4 种交互模式
- 一问一答(请求-响应模式)
- 一问多答(订阅 / 推送模式)
- 多问一答(批量 / 聚合模式)
- 多问多答(双向实时通信模式)
- 四种模式对比总结
- 如何选择合适的模式?
一问一答(请求-响应模式)
这是最经典、最基础的交互模式。
代表协议
- HTTP / HTTPS
- DNS 查询
- SQL 查询(非流式)
适用场景
特点
✅ 适合“我问你答一次就结束”的场景
一问多答(订阅 / 推送模式)
客户端只发一次请求,服务器持续返回多条数据。
代表技术
- SSE(Server‑Sent Events)
- WebSocket(单向推送视角)
- RSS 订阅
- Kafka / MQTT 订阅
适用场景
- 股票行情
- 比赛实时比分
- 新闻 / 微博时间线推送
- 实时日志监控
特点
- 一次订阅,多次推送
- 服务器有“主动说话”能力(有限)
- 适合观察者模式
多问一答(批量 / 聚合模式)
客户端发起多个请求,服务器聚合后返回一次响应。
代表技术
- HTTP/2 多路复用
- GraphQL
- 分片上传(最后一次性确认)
典型场景
1. 大文件分片上传
- 客户端将文件切成 1MB 的小块
- 并发上传多个分片
- 服务器全部收齐后返回“上传成功”
2. GraphQL
特点
- 减少网络往返(RTT)
- 更高效的批量处理
- 客户端与服务器之间有“多对一”的约定
多问多答(双向实时通信模式)
建立连接后,双方都可以随时主动发送消息。
代表技术
- WebSocket
- TCP / UDP 长连接
- MQTT
- SignalR / Socket.IO
典型场景
| 场景 | 说明 |
|---|
| 远程控制(ToDesk / TeamViewer) | 控制端输入指令,被控端持续回传屏幕画面 |
| 在线聊天(微信 / 钉钉) | 双方任意时刻都能发送消息 |
| 多人在线游戏 | 玩家动作广播 + 服务器推送状态 |
| 实时协同文档 | 多人同时编辑,互相看到光标和内容 |
特点
四种模式对比总结
| 模式 | 请求次数 | 响应次数 | 方向 | 代表技术 | 典型场景 |
|---|
| 一问一答 | 1 | 1 | 单向请求 | HTTP | 普通 API |
| 一问多答 | 1 | N | 订阅推送 | SSE、WebSocket | 行情推送 |
| 多问一答 | N | 1 | 批量聚合 | GraphQL、分片上传 | 批量查询 |
| 多问多答 | N | N | 双向实时 | WebSocket、MQTT | 聊天、游戏 |
如何选择合适的模式?