WebSocket订单及资产
接入说明
WebSocket域名
wss://wss.hotcoinfin.com/trade/multiple
数据压缩
WebSocket行情接口返回的所有数据进行了GZIP压缩,客户端在收到数据之后需要解压。
心跳消息
当用户的Websocket客户端连接到Hotcoin服务器后,Hotcoin服务器会定期(当前设为5秒)向其发送ping消息,如下: {"ping": "ping"}
当用户的Websocket客户端接收到此心跳消息后,应返回pong消息,如下: {"pong": "pong"}
Websocket登录
请求参数
参数 | 数据类型 | 是否必须 | 描述 |
---|---|---|---|
accessKey | String | 是 | 访问key |
timestamp | String | 是 | 时间戳 |
signature | String | 是 | 签名 |
订单和资产WebSocket签名与Rest接口签名步骤相似。
签名前最后生成的字符串如下:
POST
wss.hotcoinfin.com
signin
accessKey=75a14b37736c4da4a33e4d37694ef389×tamp=1720935778689
Request
{
"signin":
{
"accessKey": "75a14b37736c4da4a33e4d37694ef389",
"timestamp": "1720935275818"
"signature": "CMkZzGwxdougZrTcPzk4k9I8moj257IteNTdYWQOwU="
}
}
Response
{
"status": "ok",
"ts": 1632878832006
}
订阅主题
成功建立与Websocket服务器的连接后,Websocket客户端发送请求以订阅特定主题: {"sub": "topic to subscribe"}
比如:{"sub": "market.btc_usdt.trade.depth"}
成功订阅后,Websocket客户端将收到确认消息:
Response
{
"ch": "market.trade.entrust.change",
"code": 200,
"msg": "SUCCESS",
"status": "ok",
"ts": 1632878832006
}
之后, 一旦所订阅的主题有数据更新,热币服务器将向Websocket客户端推送更新消息。
取消订阅
取消订阅的格式如下:{"unsub": "topic to unsubscribe"}
取消订阅成功确认。
订阅订单更新
订单的更新推送由任一以下事件触发: - 订单创建(eventType=created) - 订单成交(eventType=trade) - 订单撤销(eventType=canceled)
请求数据:{"sub":"market.trade.entrust.change"}
取消订阅:{"unsub":"market.trade.entrust.change"}
- 订阅成功或者取消订阅后,服务器返回数据:
订阅成功Response
{
"ch": "market.trade.entrust.change",
"code": 200,
"code": 200,
"msg": "SUCCESS",
"status": "ok",
"ts": 1720990327128
}
当订单创建/成交/撤销时:
订单变更Response
{
"msg": "SUCCESS",
"code": 200,
"data": {
"types": "Bid",
"fees": "0.0001221",
"count": "1",
"tradecount": 0.08140000000000000000,
"successamount": "4900.226276",
"eventType": "trade",
"source": "WEB",
"type": 0,
"tradeamount": 4900.22627600000000000000,
"successcount": "0.0814",
"price": "60200",
"eventTime": 1720991326416,
"buysymbol": "USDT",
"id": "2407101552042660247",
"time": 1720991326286,
"sellsymbol": "BTC",
"tradeprice": 60199.34000000000000000000,
"tradetime": 1720991326325,
"statusCode": 2,
"status": "Partial fill"
},
"ch": "market.trade.entrust.change",
"status": "ok",
"ts": 1720991326416
}
参数 | 数据类型 | 描述 | 备注 |
---|---|---|---|
eventType | String | 事件类型 | 有效值:created / trade / canceled |
eventTime | Long | 事件时间戳 | |
tradeprice | Number | 成交价格 | 当eventType为trade时有效 |
tradecount | Number | 成交数量 | 当eventType为trade时有效 |
tradeamount | Number | 成交金额 | 当eventType为trade时有效 |
tradetime | Long | 成交时间 | 当eventType为trade时有效 |
id | Bigint | 委单id | |
time | String | 下单时间戳 | |
types | String | 委单类型 | 买单、卖单 |
source | String | 订单来源 | WEB/ANDROID/API/H5/IOS/SYSTEM |
price | String | 下单价格 | |
count | String | 下单数量 | |
successcount | String | 成交数量 | |
successamount | String | 成交金额 | |
fees | String | 手续费 | |
statusCode | Integer | 委单状态 | 未成交、部分成交、完全成交、撤单处理中、已撤销、部分成交已撤销 |
status | String | 委单状态 | 1-未成交、2-部分成交、3-完全成交、4-撤单处理中、5-已撤销、8-部分成交已撤销 |
type | Integer | 委单类型 | 0( "买单"), 1( "卖单") |
buysymbol | String | 计价币 | 如:USDT |
sellsymbol | String | 标的币 | 如:BTC |
clientOrderId | String | 自定义订单ID | 如有 |
订阅资产更新
请求数据:{"sub":"market.trade.asset.balance"}
取消订阅:{"unsub":"market.trade.asset.balance"}
- 订阅成功或者取消订阅后,服务器返回数据:
订阅成功Response
{
"ch": "market.trade.asset.balance",
"code": 200,
"code": 200,
"msg": "SUCCESS",
"status": "ok",
"ts": 1720990327128
}
当资产余额变更时:
资产变更Response
{
"msg": "SUCCESS",
"code": 200,
"data": {
"assets": [{
"total": "88888889177.244123",
"price": "3245.98000000000000000000",
"fullName": "以太坊",
"frozen": "3.547458",
"currency": "ETH",
"free": "88888889173.696665"
}],
"estBtc": "5758127912.12792281",
"estUsdt": "350382083452984.102991"
},
"ch": "market.trade.asset.balance",
"status": "ok",
"ts": 1721001849882
}
参数 | 数据类型 | 描述 | 备注 |
---|---|---|---|
estUsdt | String | 总资产折合USDT | |
estBtc | String | 总资产折合BTC | |
assets[n].currency | String | 资产简称 | 比如:BTC |
assets[n].fullName | String | 资产全称 | 比如:Bitcoin |
assets[n].free | String | 可用数量 | |
assets[n].frozen | String | 冻结数量 | |
assets[n].total | String | 资产总量 | |
assets[n].price | String | 资产价格折合USDT |