-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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 表示失败
- code: error code
- 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:
- token: String
- source: String, 来源,比如 "web", 客户端需要带上版本号,最长不超过30个字节
行情查询
- method:
kline.query
- params:
- market: 市场名
- start: 开始时间,Integer
- end: 结束时间, Integer
- interval: 周期秒数, Integer
- result:
"result": [
[
1492358400, 时间
"7000.00", 开盘
"8000.0", 收盘
"8100.00", 最高
"6800.00", 最低
"1000.00" 成交量
]
...
]
行情订阅
- method:
kline.subscribe
- params:
- market
- interval
行情推送
- method:
kline.update
- params:
[
[
1492358400, 时间
"7000.00", 开盘
"8000.0", 收盘
"8100.00", 最高
"6800.00", 最低
"1000.00" 成交量
]
...
]
获取最新成交价
- method:
price.query
- params:
- market: String, 市场名
- result: String, 价格
最新成交价订阅
- method:
price.subscribe
- params: 市场列表
最新成交价推送
- method:
price.update
- params:
- market: String
- price: String
获取最新成交列表
- method:
deals.query
- params:
- market:市场
- limit:限制数量
- last_id: 上次返回结果的最大 ID
最新成交列表订阅
- method:
deals.subscribe
- params: 市场列表
最新成交列表更新
- method:
deals.update
- params:
- 市场名
- 交易列表
深度查询
- method:
depth.query
- params:
- market:市场名
- limit: 数量限制,Integer
- interval: 间隔,String, 比如 "1" 表示间隔 1 个单位,"0" 表示无间隔
"result": {
"asks": [
[
"8000.00",
"9.6250"
]
],
"bids": [
[
"7000.00",
"0.1000"
]
]
}
深度订阅
- method:
depth.subscribe
- params:
- market
- limit
- interval
深度推送
- method:
depth.update
- params:
- clean: Boolean, true: 表示是完整的结果,false: 表示是上次返回更新的结果。
- 同 depth.query,只返回与上次结果不同的地方,asks 或 bids 可能不存在。amount == 0 表示删除。
下限价单
- method:
order.put_limit
- params:
- market: 市场名,String
- side: 1: 卖单, 2: 买单,Integer
- amount: 数量,String
- pride: 价格,String
下市价单
- method:
order_put_market
- params:
- market: 市场名,String
- side: 1: 卖单, 2: 买单,Integer
- amount: 数量或金额,String
取消订单
- method:
order.cancel
- params:
- market:市场
- order_id: 订单ID
未成交订单查询
- method:
order.query
- params:
- market: 市场名,String
- offset: 偏移量,Integer
- limit: 限制量,Integer
- result: 参见 HTTP protocol
已成交订单查询
- method:
order.history
- params:
- market: 市场名,String
- start_time: 起始时间,0 表示不限制,Integer
- end_time: 结束时间,0 表示不限制, Integer
- offset: 偏移量,Integer
- limit: 限制量,Integer
订单订阅
- method:
order.subscribe
- params: 市场列表
订单推送
- method:
order.update
- params:
- event: 事件类型,Integer, 1: PUT, 2: UPDATE, 3: FINISH
- order: 订单详情,Object,参见 HTTP protocol
资产查询
- method:
asset.query
- params: 资产列表,为空表示查询所有
- result:
{"BTC": {"available": "1.10000000","freeze": "9.90000000"}}
资产历史
- method:
asset.history
- params:
- asset: 资产名,可以为空
- business: 业务,可以为空
- start_time: 起始时间,0 表示不限制,Integer
- end_time: 结束时间,0 表示不限制, Integer
- offset: 偏移位置,Integer
- limit: 数量限制,Integer
资产订阅
- method:
asset.subscribe
- params: 资产列表
资产推送
- method:
asset.update
- params:
[{"BTC: {"available": "1.10000000","freeze": "9.90000000"}, "CNY": {}}]
获取最新成交价
-
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"]}