WebSocket 行情接口
基本信息
- 本篇所列出的所有wss接口的baseurl为: wss://stream.binance.com:9443 或者 wss://stream.binance.com:443
- 所有stream均可以直接访问,或者作为组合streams的一部分。
- 直接访问时URL格式为 /ws/<streamName>
- 组合streams的URL格式为 /stream?streams=<streamName1>/<streamName2>/<streamName3>
- 订阅组合streams时,事件payload会以这样的格式封装 {"stream":"<streamName>","data":<rawPayload>}
- stream名称中所有交易对均为小写
- 每个到stream.binance.com的链接有效期不超过24小时,请妥善处理断线重连。
- 系统会在断开连接前 10 分钟会发送
serverShutdown事件。请尽快建立新连接,以防止中断。 - WebSocket 服务器每20秒发送 PING 消息。
- 如果 WebSocket 服务器没有在一分钟之内收到PONG 消息应答,连接会被断开。
- 当客户收到PING消息,必须尽快回复PONG消息,同时payload需要和PING消息一致。
- 服务器允许未经请求的PONG消息,但这不会保证连接不断开。对于这些PONG 消息,建议payload为空。
- wss://data-stream.binance.vision 可以用来订阅仅有市场信息的数据流。账户信息无法从此URL获得。
- 所有时间和时间戳相关字段均以毫秒为默认单位。 要以微秒为单位接收信息,请在 URL 中添加参数
timeUnit=MICROSECOND或timeUnit=microsecond。- 例如:
/stream?streams=btcusdt@trade&timeUnit=MICROSECOND
- 例如:
- 如果您的请求包含非 ASCII 字符的交易对名称,那么数据流事件中可能包含以 UTF-8 编码的非 ASCII 字符。
- 全市场所有 Symbol 的精简 Ticker 和 全市场滚动窗口统计 事件可能包含以 UTF-8 编码的非 ASCII 字符。
WebSocket 连接限制
- WebSocket服务器每秒最多接受5个消息。消息包括:
- PING帧
- PONG帧
- JSON格式的消息, 比如订阅, 断开订阅.
- 如果用户发送的消息超过限制,连接会被断开连接。反复被断开连接的IP有可能被服务器屏蔽。
- 单个连接最多可以订阅1024个Streams。
- 每IP地址、每5分钟最多可以发送300次连接请求。
服务器关闭
当服务器即将关闭时,会发送 serverShutdown 事件。
raw("原始")信息流:
{
"e": "serverShutdown", // 事件类型
"E": 1770123456789 // 事件时间
}
combined("组合")信息流:
{
"stream": "!serverShutdown",
"data": {
"e": "serverShutdown", // 事件类型
"E": 1770123456789 // 事件事件
}
}
请尽快建立新连接,以防中断。
实时订阅/取消数据流
- 以下 数据可以通过 WebSocket 发送以实现订阅或取消订阅数据流。示例如下.
- 请求中的
id被用作唯一标识来区分来回传递的消息。以下格式被接受:- 64位有符号整数
- 字母数字字符串;最大长度36
null
- 如果相应内容中的
result为null,表示请求发送成功。
订阅一个信息流
-
请求
{
"method": "SUBSCRIBE",
"params": ["btcusdt@aggTrade", "btcusdt@depth"],
"id": 1
} -
响应
{
"result": null,
"id": 1
}
取消订阅一个信息流
-
请求
{
"method": "UNSUBSCRIBE",
"params": ["btcusdt@depth"],
"id": 312
}