Twitter/X 使用 WebSocket 吗?开发者技术指南
关于 Twitter 流式协议的技术真相,为何对实时应用重要,以及 WebSocket 推送的对比。
简短回答:不,Twitter 不使用 WebSocket
官方 X(Twitter)API 的流式端点不使用 WebSocket。而是使用 HTTP 流式传输 — 一种长连接 HTTP 请求,服务器通过分块传输编码逐步发送数据。这与 WebSocket(RFC 6455)是根本不同的协议。
这个区别对构建实时应用的开发者很重要。你使用的协议会影响延迟、重连行为、双向通信以及客户端代码架构。
Twitter 的 HTTP 流式传输实际如何工作
连接到 X API 的过滤流端点(GET /2/tweets/search/stream)时,客户端发起标准 HTTP 请求。服务器响应 200 状态码并开始逐行写入 JSON — 每条推文一行,无限持续。可以理解为下载一个无限长的文件。
在推文之间,X 大约每 20 秒发送保活信号(空行)。如果客户端超过 20 秒未收到数据,应假定连接中断并重新连接。
- 协议:HTTP/1.1 分块传输编码
- 数据格式:换行分隔的 JSON(NDJSON)
- 方向:仅服务器到客户端(单向)
- 保活:约每 20 秒一个空行
- 认证:HTTP Authorization 头中的 Bearer token
- 连接:一个长连接 HTTP 响应,永不关闭(直到错误或断开)
WebSocket 与 HTTP 流式传输的区别
WebSocket(RFC 6455)是一个独立协议,以 HTTP 升级请求开始,然后切换为帧化的双向通信通道。与 HTTP 流式传输不同,WebSocket 在同一连接上支持服务器到客户端和客户端到服务器的消息。
| 特性 | HTTP 流式传输(X API) | WebSocket(RFC 6455) |
|---|---|---|
| 初始握手 | 标准 HTTP 请求 | HTTP 升级 → ws:// 协议切换 |
| 方向 | 仅服务器 → 客户端 | 双向 |
| 数据帧 | 换行分隔的块 | 带长度头的二进制/文本帧 |
| 保活 | 空行(约 20 秒) | Ping/Pong 帧(协议内置) |
| 客户端可发送数据 | 否(需新 HTTP 请求) | 是(同一连接) |
| 断连检测 | 基于超时(手动) | 关闭帧 + ping/pong(自动) |
| 浏览器支持 | 需要 ReadableStream API | 原生 WebSocket API |
| 重连 | 需手动实现 | 库自动处理 |
为什么这对实时应用很重要
对于交易机器人和提醒系统,协议选择有实际影响:
- 延迟:两种协议原始延迟相似。区别在于开销 — WebSocket 帧有 2-14 字节开销,而 HTTP 分块编码的开销是可变的。
- 重连:HTTP 流式传输没有内置机制检测中断连接。你必须实现超时逻辑。WebSocket 的 ping/pong 协议自动处理。
- 双向:使用 HTTP 流式传输时,订阅新账号或更改过滤条件需要单独的 HTTP 请求。使用 WebSocket,你可以在同一连接上发送订阅变更。
- 浏览器兼容性:HTTP 流式传输需要 ReadableStream API 进行增量解析。WebSocket 有原生浏览器支持和更简单的 API。
- 基础设施:HTTP 流式连接可能被期望标准请求/响应模式的代理、负载均衡器和 CDN 中断。WebSocket 连接专为长连接设计。
代码对比:HTTP 流式传输 vs WebSocket
WebSocket 服务作为 Twitter 流式替代方案
多个第三方服务通过真正的 WebSocket 连接中继 Twitter 数据,弥合了 Twitter HTTP 流式传输与大多数实时应用偏好的 WebSocket 协议之间的差距。
例如 TweetStream 在服务器端连接 Twitter 数据源,并通过标准 WebSocket 连接将推文提醒推送到你的应用。这让你使用熟悉的 WebSocket API(onopen、onmessage、onclose)加上 OCR、代币检测和实时价格等富化数据。
- 标准 WebSocket API — 无需 HTTP 流式传输解析
- 自动重连与消息缓冲
- 约 200 毫秒推送延迟(含富化处理)
- 起步 $199/月
- 双向:在同一连接上订阅账号和更改过滤条件
常见问题
TweetStream 团队
最近更新:2026 年 4 月
立即开启实时 Twitter WebSocket 提醒
内置 WebSocket 交付、OCR 与代币检测的 Twitter API 替代方案。
开始 7 天试用起价 $199/月 · Basic/Elite 含 7 天试用 · OCR + 代币检测
