用户看不到实时消息、通知延迟到达、在线聊天卡顿?REST 不适合这个场景——你需要 WebSocket 或 SSE。双向通信通道、即时送达、通过 Redis Pub/Sub 实现扩展。在 REST 力不从心的地方大显身手。
实时 API 开发 就是构建即时数据传输的系统。聊天、通知、协作编辑、股票报价、在线游戏——任何注重消息传递速度的场景。
WebSocket — 基于 TCP 的完整双向通信通道。极低延迟、持久连接无需重新建立
Server-Sent Events (SSE) — 轻量级协议,用于从服务器到浏览器的单向事件传输。适用于通知和更新推送
扩展性 — 通过 Redis Pub/Sub 或 RabbitMQ 实现 WebSocket 水平扩展。单个节点支持数千并发连接。
安全性 — WSS(WebSocket Secure)、连接建立时的身份验证、传入消息验证
WebSocket · SSE · Pub/Sub · Redis · WSS
实时涵盖广泛的任务。从简单的通知到多人协作。我们根据具体场景选择协议。
WebSocket 用于即时消息传递。支持状态:在线、离线、正在输入。消息历史、文件、反应。群聊和私聊。
SSE 用于向浏览器轻量推送事件。通过 WebSocket 的推送通知。按类型、优先级、用户进行筛选。保证送达。
Operational Transform 用于协同编辑。WebSocket 用于光标同步。OT 算法或 CRDT 用于冲突解决。
实时就是用户在反应过来“为什么没动静”之前就已经收到了消息。我们构建的系统延迟以毫秒计,而非秒计。
实时系统不仅仅是 WebSocket。我们设计的架构能够承载数千并发连接并保证每条消息的送达。
连接架构 — WebSocket vs SSE vs 长轮询。根据任务选择协议。设计房间和频道用于组播。
扩展性 — Redis Pub/Sub 用于节点间消息交换。WebSocket 服务器的水平扩展,共享状态。
Node.js 上的实时方案 — 基于 Socket.IO 或 ws 的 Node.js WebSocket 服务器。与 REST API 和现有后端集成。
送达保证 — at-most-once、at-least-once、exactly-once。接收确认、断线重发。
监控 — 活跃连接数、带宽、延迟。Prometheus + Grafana 实时指标。
REST + WebSocket 混合 — REST 用于请求-响应,WebSocket 用于推送通知。现代应用的最佳架构。
Redis Pub/Sub 支持 WebSocket 服务器的水平扩展。在一个节点上发送的消息会通过 Redis 立即送达所有其他节点。数千连接——一个队列。
定制实时 API — 获得一个数据即时送达、连接可靠、可扩展性内置于架构的系统。
我们实现 at-least-once 和 exactly-once 语义。即使临时断线消息也能送达——确认队列和重试机制。
Redis Pub/Sub、WebSocket 服务器水平扩展。单实例数千并发连接,集群数百万。
Grafana 仪表板:活跃连接、带宽、延迟。连接质量下降时通过 Telegram 发送警报。
实时就是用户无需等待。我们构建的系统延迟以毫秒计,即使连接断开也能保证消息送达。