Skip to content

WebSocket Protocol

arthur edited this page May 15, 2017 · 53 revisions

接口约定

接口使用基于Websocket协议的JSON RPC 方案. 同一类型数据,重复订阅会取消前一次订阅。

Request

  • method: 方法,String
  • params: 参数,Array
  • id: Request id, Integer

Response

  • result: Json 对象,null 表示失败
  • error: Json 对象,null 表示成功,非 null 表示失败
  1. code: error code
  2. message: error message
  • id: Request id, Integer

Notify

  • method: 方法,String
  • params: 参数,Array
  • id: Null

通用 error code:

  • 1: invalid argument
  • 2: internal error
  • 3: service unavailable
  • 4: method not found
  • 5: service timeout
  • 6: require authentication

系统接口

系统时间

  • method: server.time
  • params: 无
  • result: 时间戳,Integer
  • example: {"error": null, "result": 1493285895, "id": 1000}

身份认证

  • method: server.auth
  • params:
  1. token: String
  2. source: String, 来源,比如 "web", 客户端需要带上版本号,最长不超过30个字节

行情接口

行情查询

  • method: kline.query
  • params:
  1. market: 市场名
  2. start: 开始时间,Integer
  3. end: 结束时间, Integer
  4. interval: 周期秒数, Integer
  • result:
"result": [
    [
        1492358400, 时间
        "7000.00",  开盘
        "8000.0",   收盘
        "8100.00",  最高
        "6800.00",  最低
        "1000.00"   成交量
    ]
    ...
]

行情订阅

  • method: kline.subscribe
  • params:
  1. market
  2. interval

行情推送

  • method: kline.update
  • params:
[
    [
        1492358400, 时间
        "7000.00",  开盘
        "8000.0",   收盘
        "8100.00",  最高
        "6800.00",  最低
        "1000.00"   成交量
    ]
    ...
]

价格接口

获取最新成交价

  • method: price.query
  • params:
  1. market: String, 市场名
  • result: String, 价格

最新成交价订阅

  • method: price.subscribe
  • params: 市场列表

最新成交价推送

  • method: price.update
  • params:
  1. market: String
  2. price: String

成交接口

获取最新成交列表

  • method: deals.query
  • params:
  1. market:市场
  2. limit:限制数量
  3. last_id: 上次返回结果的最大 ID

最新成交列表订阅

  • method: deals.subscribe
  • params: 市场列表

最新成交列表更新

  • method: deals.update
  • params:
  1. 市场名
  2. 交易列表

深度接口

深度查询

  • method: depth.query
  • params:
  1. market:市场名
  2. limit: 数量限制,Integer
  3. interval: 间隔,String, 比如 "1" 表示间隔 1 个单位,"0" 表示无间隔
"result": {
    "asks": [
        [
            "8000.00",
            "9.6250"
        ]
    ],
    "bids": [
        [
            "7000.00",
            "0.1000"
        ]
    ]
}

深度订阅

  • method: depth.subscribe
  • params:
  1. market
  2. limit
  3. interval

深度推送

  • method: depth.update
  • params:
  1. clean: Boolean, true: 表示是完整的结果,false: 表示是上次返回更新的结果。
  2. 同 depth.query,只返回与上次结果不同的地方,asks 或 bids 可能不存在。amount == 0 表示删除。

订单接口 (连接需认证)

下限价单

  • method: order.put_limit
  • params:
  1. market: 市场名,String
  2. side: 1: 卖单, 2: 买单,Integer
  3. amount: 数量,String
  4. pride: 价格,String

下市价单

  • method: order_put_market
  • params:
  1. market: 市场名,String
  2. side: 1: 卖单, 2: 买单,Integer
  3. amount: 数量或金额,String

取消订单

  • method: order.cancel
  • params:
  1. market:市场
  2. order_id: 订单ID

未成交订单查询

  • method: order.query
  • params:
  1. market: 市场名,String
  2. offset: 偏移量,Integer
  3. limit: 限制量,Integer
  • result: 参见 HTTP protocol

已成交订单查询

  • method: order.history
  • params:
  1. market: 市场名,String
  2. start_time: 起始时间,0 表示不限制,Integer
  3. end_time: 结束时间,0 表示不限制, Integer
  4. offset: 偏移量,Integer
  5. limit: 限制量,Integer

订单订阅

  • method: order.subscribe
  • params: 市场列表

订单推送

  • method: order.update
  • params:
  1. event: 事件类型,Integer, 1: PUT, 2: UPDATE, 3: FINISH

  1. order: 订单详情,Object,参见 HTTP protocol

资产接口 (连接需认证)

资产查询

  • method: asset.query
  • params: 资产列表,为空表示查询所有
  • result:
{"BTC": {"available": "1.10000000","freeze": "9.90000000"}}

资产历史

  • method: asset.history
  • params:
  1. asset: 资产名,可以为空
  2. business: 业务,可以为空
  3. start_time: 起始时间,0 表示不限制,Integer
  4. end_time: 结束时间,0 表示不限制, Integer
  5. offset: 偏移位置,Integer
  6. limit: 数量限制,Integer

资产订阅

  • method: asset.subscribe
  • params: 资产列表

资产推送

  • method: asset.update
  • params:
[{"BTC: {"available": "1.10000000","freeze": "9.90000000"}, "CNY": {}}]

价格接口(ios/android扩展)

获取最新成交价

  • method: price-ex.query

  • params:

    • market: String, 市场名
  • result:

    • string, 价格
    • string,涨跌状态("1":涨,"2":跌)
    • string,今日最高
    • string,今日最低
    • string,今日涨幅
    • string,24H成交量
    • string,涨跌幅(相对于今开)

    result example:

     { "error": null, "id": 1,"result": ["8000","1", "8001","7999", "-1.2%","B4,500"]}

最新成交价订阅

  • method: price-ex.subscribe
  • params: 市场列表

最新成交价推送

  • method: price-ex.update

  • params:

    • string:market
    • string, 价格
    • string,涨跌状态("1":涨,"2":跌)
    • string,今日最高
    • string,今日最低
    • string,今日涨幅
    • string,24H成交量
    • string,涨跌幅(相对于今开) result example:
     { "error": null, "id": 1,"result": ["BTCCNY","8000","1", "8001","7999", "-1.2%","B4,500"]}
Clone this wiki locally