Skip to content

Websocket推送

概述

WebSocket 是 HTML5 一种新的协议(Protocol)。它实现了客户端与服务器全双工通信,使得数据可以快速地双向传播。通过一次简单的握手就可以建立客户端和服务器连接,服务器根据业务规则可以主动推送信息给客户端。其优点如下:

  • 客户端和服务器进行数据传输时,请求头信息比较小,大概 2 个字节。
  • 客户端和服务器皆可以主动地发送数据给对方。
  • 不需要多次创建 TCP 请求和销毁,节约宽带和服务器的资源。

强烈建议开发者使用 WebSocket API 获取市场行情和买卖深度等信息。

基本信息

  • 现货行情基础站点:wss://openapi.bitbaby.com/spot/ws
  • 合约行情基础站点:wss://openapi.bitbaby.com/futures/ws
  • 返回数据除了心跳数据都会二进制压缩(用户需要通过 Gzip 算法进行解压)。

参数示例

eventchanneldescription
submarket_$symbol_depth_0.1订阅深度(以 BTCUSDT 为例,具体币对深度需查询对应接口)
unsubmarket_$symbol_depth_0.1取消订阅深度
submarket_$symbol_deals订阅实时成交
unsubmarket_$symbol_deals取消订阅实时成交
submarket_$symbol订阅 24h 行情数据
unsubmarket_$symbol取消订阅 24h 行情数据
submarket_$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         // 涨幅
    }
}