订阅数据( addchanne)

订阅数据(addChannel)以及接收订阅数据的大致流程

┌────────┐                         ┌────────┐ 
│ Client │                         │ Server │
└───┬────┘                         └───┬────┘
    │ {"event": "addChannel",          |
    |  "channel": "xxx channel"}       │
    ├─────────────────────────────────>│
    |                                  | 
    │       {"channel": "xxx channel", | 
    |        "data": "data of channel"}│
    │<┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┤
    |                                  | 
    │       {"channel": "xxx channel", | 
    |        "data": "data of channel"}│
    │<┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┤
    |                                  | 
    │       {"channel": "xxx channel", | 
    |        "data": "data of channel"}│
    │<┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┤
    │                                  │

注:订阅 channel 成功之后,当 channel 对应的数据有更新时,Server 按一定的频率把 channel 对应的新数据推送给 Client

订阅数据的格式

成功建立和 WebSocket API 的连接之后,向 Server 发送如下格式的数据来订阅数据

{
  "event": "addChannel",
  "channel": "channel to sub"
}

正确订阅的例子

正确订阅

{
  "event": "addChannel",
  "channel": "babel_sub_spot_BIX_BTC_kline_1min"
}
  • "channel" 的值为 channel ,请参考 "5. channel格式" 的 channel 格式

订阅成功返回数据的例子

[{
  "channel": "babel_sub_spot_BIX_BTC_kline_1min",
"data_type": 0, //订阅成功返回一次全量数据,之后返回增量 "data": [ { "time":1536310020000, "open":"0.00006614", "high":"0.00006659", "low":"0.00006604", "close":"0.00006652", "vol":"74056.89597166" }, { "time":1536310080000, "open":"0.00006652", "high":"0.00006652", "low":"0.00006652", "close":"0.00006652", "vol":"100" } ] }]
  • "data_type" 标识返回的数据是全量还是增量,0-返回全量数据,1-返回增量数据

data 说明

  "data": {
    "time": k线某周期开始时间,
    "count": 成交笔数,
    "open": 开盘价,
    "high": 最高价,
    "low": 最低价,
    "close": 收盘价
    "vol": 成交量
  }

之后每当 Kline 有更新时,client 会收到数据,例子

[{
  "channel": "babel_sub_spot_BIX_BTC_kline_1min",
"data_type": 1, "data": [ { "time":1536310020000, "open":"0.00006614", "high":"0.00006659", "low":"0.00006604", "close":"0.00006652", "vol":"74056.89597166" }, { "time":1536310080000, "open":"0.00006652", "high":"0.00006652", "low":"0.00006652", "close":"0.00006652", "vol":"100" } ] }]

注:返回增量k线时,每次都返回最新相邻两条kline

错误订阅的例子

错误订阅(错误的 pair,大小写敏感)

{
  "event": "addChannel",
  "channel": "babel_sub_spot_bix_btc_kline_1min"
}

订阅失败返回数据的例子

{
  "channel": "babel_sub_spot_bix_btc_kline_1min",
"error": { "code": "3009", "msg":"推送订阅channel不合法" } }