WS通讯机制

来自BitKeep_Wiki
跳转至: 导航搜索

概述[编辑]

通讯数据格式

   JSON

传输格式

  二进制

请求接口

  wss://rt.bitkeep.com


请求数据格式

   {
       "action":"trade.buy",                      // 由后端服务提供的请求接口
       "params":{...},                            // 一个或多个参数,无参数传输 {}
       "accessToken": "3u83-jr3r-392u-jsj9-30",   // 客户端随机生成的访问token,保持每次生成与之前的不一致
   }

返回数据

   {
       "action":"trade.buy",
       "status":0,                                // 大于0表示错误,错误消息存储在data中
       "data":{},                                 // 服务端返回数据,如果没有数据返回空 {} 
       "accessToken": "3u83-jr3r-392u-jsj9-30",   // 服务端返回,之前客户端设置的请求token
       "createdAt": 123123445                     // 该条数据更新的时间戳
   }


错误消息


   {
       "action":"user.auth",
       "status":409181,                            // 大于0表示错误,错误消息存储在data中
       "data":"The auth token invalid",            // 服务端返回错误消息 字符串类型
       "accessToken": "3u83-jr3r-392u-jsj9-30",    // 服务端返回,之前客户端设置的请求token
       "createdAt": 123123445                      // 该条数据更新的时间戳
   }

心跳机制[编辑]

服务端会每隔N时间发送心跳数据到客户端,客户端收到后回复一次服务端发来的消息即可


服务端数据

   {"p":"q"}


客户端回复

   {"p":"q"}

用户鉴权[编辑]

某些接口需要用户的token才可以访问,客户端可以发送用户的token到服务端

   {
       "action":"user.auth",
       "params":{
           "token": "..."                         // 客户端获取用户登录token,发送到服务端
       },
       "accessToken": "3u83-jr3r-392u-jsj9-30",   // 客户端随机生成的访问token,保持每次生成与之前的不一致
   }


获取数据[编辑]

客户端需要在视图载入时,立即获取数据,使用如下方法

   {
       "action":"Depth.getDepth", // 获取深度数据,此外支持 Exchange.getExchange    Ticker.getTicker     Kline.getKline
       "params":{
           "pair":"BTC_USDT", 
           "subscribe":false
       },
       "accessToken": "3u83-jr3r-392u-jsj9-30"
   }

消息订阅[编辑]

客户端需要什么数据,发送订阅请求,完成后,服务端发现数据有变更就会将最新数据推送给客户端, 公共数据订阅不需要鉴权(例如:depth,ticker),私有数据需要用户鉴权(参考鉴权部分)

   {
       "action":"subscribeService.subscribe",
       "params":{
           "action":"Depth",
           "pair":"BTC_USDT"                // 交易对, 此处可能根据不同的action使用不同的参数
       },
       "accessToken": "3u83-jr3r-392u-jsj9-30",   // 客户端随机生成的访问token,保持每次生成与之前的不一致
   }

目前params的action支持 'Depth','Ticker', 'Kline', 'Trade', 'Order' 其中除了 Order 为私有数据订阅,其它均为公共数据订阅

订阅返回数据结构[编辑]

订阅返回的数据结构

Depth:

           [
               0.02772175, //购买价格
               2,   //购买数量
               [
                   "okex"  //交易所
               ],
               2, 累加数量
               340   //最大值用于画阴影
           ],