Streaming API(流式API)是一种实时数据传输接口,采用流式处理模式,允许客户端与服务端建立长连接,持续接收动态更新的数据(如事件、日志、消息等),而非传统的请求-响应模式。其核心特点是低延迟、增量传输,数据以"流"的形式分块发送,无需等待完整结果。
原因:网络波动或服务端超时。 解决:
ping/pong
)。原因:网络延迟或并行处理导致乱序。 解决:
stream_id
)。原因:长连接占用服务器资源。 解决:
gorilla/websocket
库)。// Node.js Express 示例
const express = require('express');
const app = express();
app.get('/stream', (req, res) => {
res.setHeader('Content-Type', 'text/event-stream');
res.setHeader('Cache-Control', 'no-cache');
res.setHeader('Connection', 'keep-alive');
// 每2秒推送一次时间
const timer = setInterval(() => {
res.write(`data: ${new Date().toISOString()}\n\n`); // SSE格式要求
}, 2000);
req.on('close', () => clearInterval(timer));
});
app.listen(3000);
| 类型 | 协议 | 方向 | 适用场景 | |------------|---------|----------|-----------------------| | SSE | HTTP | 单向推送 | 实时通知、日志流 | | WebSocket | WS | 双向 | 聊天室、协同编辑 | | gRPC | HTTP/2 | 双向 | 微服务间高效通信 | | MQTT | TCP | 发布订阅 | IoT设备低功耗通信 |
通过选择合适的技术栈,Streaming API可显著提升实时系统的效率和用户体验。
没有搜到相关的文章