Websocket推送
概述
WebSocket 是 HTML5 一种新的协议(Protocol)。它实现了客户端与服务器全双工通信,使得数据可以快速地双向传播。通过一次简单的握手就可以建立客户端和服务器连接,服务器根据业务规则可以主动推送信息给客户端。其优点如下:
- 客户端和服务器进行数据传输时,请求头信息比较小,大概 2 个字节。
- 客户端和服务器皆可以主动地发送数据给对方。
- 不需要多次创建 TCP 请求和销毁,节约宽带和服务器的资源。
强烈建议开发者使用 WebSocket API 获取市场行情和买卖深度等信息。
基本信息
- 现货行情基础站点:
wss://openapi.bitbaby.com/spot/ws - 合约行情基础站点:
wss://openapi.bitbaby.com/futures/ws - 返回数据除了心跳数据都会二进制压缩(用户需要通过 Gzip 算法进行解压)。
参数示例
| event | channel | description |
|---|---|---|
sub | market_$symbol_depth_0.1 | 订阅深度(以 BTCUSDT 为例,具体币对深度需查询对应接口) |
unsub | market_$symbol_depth_0.1 | 取消订阅深度 |
sub | market_$symbol_deals | 订阅实时成交 |
unsub | market_$symbol_deals | 取消订阅实时成交 |
sub | market_$symbol | 订阅 24h 行情数据 |
unsub | market_$symbol | 取消订阅 24h 行情数据 |
sub | market_$symbol_kline_1min | 订阅 1min 实时 k 线信息 |
// 30s 内发送心跳包
{
"ping": "ping"
}订阅全量深度
- 订阅数据样例
java
{
"event": "sub",
"params": {
"channel": "market_$symbol_depth_0.1" // $symbol E.g. 币币:btcusdt 合约:e_btcusdt
}
}- 返回买卖盘最多 30 条数据
java
{
"channel": "market_btcusdt_depth_0.1",
"ts": 1506584998239,
"tick": {
"asks": [ // 卖盘
[10000.19, 0.93],
[10001.21, 0.2],
[10002.22, 0.34]
],
"buys": [ // 买盘
[9999.53, 0.93],
[9998.2, 0.2],
[9997.19, 0.21]
]
}
}订阅实时成交
- 订阅数据样例
java
{
"event": "sub",
"params": {
"channel": "market_$symbol_deals" // $symbol E.g. 币币:btcusdt 合约:e_btcusdt
}
}- 返回
java
{
"channel": "market_$symbol_deals",
"ts": 1506584998239, // 请求时间
"tick": {
"id": 12121, // data 中最大交易ID
"ts": 1506584998239, // data 中最大时间
"data": [
{
"side": "buy", // 买卖方向 buy, sell
"price": 32.233, // 单价
"vol": 232, // 数量
"amount": 323, // 总额
"ds": "2017-09-10 23:12:21"
}
]
}
}订阅 k 线行情
- 订阅数据样例
java
{
"event": "sub",
"params": {
"channel": "market_$symbol_kline_[1min/5min/15min/30min/60min/1day/1week/1month]" // $symbol E.g. btcusdt
}
}- 返回
java
{
"channel": "market_$symbol_kline_1min", // 1min 代表 1 分钟 k 线
"ts": 1506584998239, // 请求时间
"tick": {
"id": 1506602880, // 时间刻度起始值
"vol": 1212.12211, // 交易量
"open": 2233.22, // 开盘价
"close": 1221.11, // 收盘价
"high": 22322.22, // 最高价
"low": 2321.22 // 最低价
}
}订阅 24h 行情 ticker
- 订阅数据样例
java
{
"event": "sub",
"params": {
"channel": "market_$symbol" // $symbol E.g. 币币:btcusdt 合约:e_btcusdt
}
}- 返回
java
{
"channel": "market_$symbol",
"ts": 1506584998239, // 请求时间
"tick": {
"amount": 123.1221, // 交易额
"vol": 1212.12211, // 交易量
"open": 2233.22, // 开盘价
"close": 1221.11, // 收盘价
"high": 22322.22, // 最高价
"low": 2321.22, // 最低价
"rose": -0.2922 // 涨幅
}
}