Skip to content

market WebSocket API

githubdev2020 edited this page Apr 7, 2020 · 5 revisions

行情服务说明文档

WebSocket API


请求地址

wss://www.bitforex.com/mkapi/coinGroup1/ws

心跳消息

  • 本服务支持标准websocket心跳模式,即ping和pong
  • 由于当前,尤其是浏览器各个版本实现有一些差异,为保证服务端和客户端连接活跃,所以本系统需要客户端定时发送心跳到本服务端,支持两种模式:
    1. 标准websocket心跳模式
    2. 字符串ping模式 websocket.send(“ping_p”);服务端返回"pong_p"

订阅参数说明

  • 在进行websocket连接时,需要进行accessKey的认证,参数需要包含accessKey,timestamp(标准时间戳),sign签名

  • sign签名,参数是:accessKey=xxxx1&timestamp=xxxxx2,则签名算法为:sign=MD5(accessKeyxxxx1timestampxxxxx2apisecret) 整个url为:/mkapi/ws?accessKey=xxxx1&timestamp=xxxxx2&sign=MD5(accessKeyxxxx1timestampxxxxx2apisecret)

  • websocket订阅参数为:

[
    {
        "type": "subHq", //订阅业务类型,行情固定为subHq,以后扩展使用
        "event": "ticker", //订阅事件,ticker 实时行情
        "param": {      //参数,每个事件参数不一定相同
            "symbol": "usdt-eth"
        }
    }
]

以上是订阅eth/usdt交易对的参数

  • 订阅支持一次订阅多个事件,比如,订阅 ticker和深度
[
    {
        "type": "subHq", //订阅业务类型,行情固定为subHq,以后扩展使用
        "event": "ticker", //订阅事件,ticker 实时行情
        "param": {      //参数,每个事件参数不一定相同
            "symbol": "usdt-eth"
        }
    },
    {
        "type": "subHq", //订阅业务类型,行情固定为subHq,以后扩展使用
        "event": "depth", //订阅事件,ticker 实时行情
        "param": {      //参数,每个事件参数不一定相同
            "symbol": "usdt-eth"
        }
    }
]
  • 取消订阅接口,type定义为:subHq_cancel, 其他参数不变
[
    {
        "type": "subHq_cancel", //订阅业务类型
        "event": "ticker", //订阅事件,ticker 实时行情
        "param": {      //参数,每个事件参数不一定相同
            "symbol": "usdt-eth"
        }
    },
]
  • 取消所有订阅接口,type定义为:subHq_cancel_all, 其他参数(此接口不允许和其他订阅一起发送)
[
    {
        "type": "subHq_cancel_all", //订阅业务类型,行情固定为subHq,以后扩展使用
        "param": {      //参数,每个事件参数不一定相同
        }
    },
]
api 协议:
订阅24h tick数据
  • websocket.send(“[{"type":"subHq","event":"ticker","param":{"businessType":"coin-usdt-btc"}}]”); 取得产品的最新行情数据

参数

参数名 类型 是否必填 默认值 描述
businessType String - 业务合约类型代码 e.g. coin-usdt-btc (详见附录1)

响应 (json)

示例:
{
       "success": true,
       "code": 200,
       "version": "0.0.1",
       "event": "ticker",
       "param": {"businessType":"coin-usdt-btc"},
        "data": {
               "startdate":<开始时间>,  
                "enddate":<结束时间>,    
                "high":<最高价>,
                "last":<最新价>,
                "low":<最低价>,
                "open":<开盘价>,
                "productvol":<量>,
                 currencyvol: <交易额>,
                 allVol: <总量>,
                 allCurrencyVol: <总交易额>,
                 rate: <24小时涨跌>      
       }   
} 


订阅实时行情深度
  • websocket.send(“[{"type":"subHq","event":"depth10","param":{"businessType":"coin-usdt-btc", "dType":0}}]”); 推送产品的最新行情深度

参数

参数名 类型 是否必填 默认值 描述
businessType String - 业务合约类型代码 e.g. coin-usdt-btc (详见附录1)
dType int - 深度类型 e.g. 0,1

响应 (json)

说明:
1、每次返回买卖盘150档行情
示例:
{
    "success": true,
    "code": 200,
    "version": "0.0.1",
    "event": "depth10",
    "param": {"businessType":"coin-usdt-btc",  "dType":0},
    "data": {   
    	"asks":[    
    	       {"price":<数字货币价格>,"amount",<数字货币数量>},    
    	       {"price":<数字货币价格>,"amount",<数字货币数量>},    
    	       {"price":<数字货币价格>,"amount",<数字货币数量>},    
    	       ...  
    	],  
    	"bids":[    
    	       {"price":<数字货币价格>,"amount",<数字货币数量>},    
    	       {"price":<数字货币价格>,"amount",<数字货币数量>},    
    	       {"price":<数字货币价格>,"amount",<数字货币数量>},    
    	       ...  
    	]   
    }   
 } 

asks为卖盘,bids为买盘


订阅产品的最新交易数据
  • websocket.send(“[{"type":"subHq","event":"trade","param":{"businessType":"coin-usdt-btc", "size":20}}]”); 推送产品的最新交易数据

参数

参数名 类型 是否必填 默认值 描述
businessType String - 业务合约类型代码 e.g. coin-usdt-btc (详见附录1)
size int - 第一次返回的数量 e.g. 20 最大 1000

响应 (json)

说明:
第一次返回,参数要求的size数量,以后增量返回,数据格式一致

示例:{
   "success": true,
     "code": 200,
     "version": "0.0.1",
    "event": "trade",
    "param": {"businessType":"coin-usdt-btc"},
    "data":[  
    	       {  
            		"price":<成交价格>,     
            		"amount",<成交量(数字货币)>,     
            		"direction",<成交方向>,    
            		"time",<成交时间> 
    	       },   
    	       {    
            		"price":<成交价格>,     
            		"amount",<成交量(数字货币为单位)>,       
            		"direction",<成交方向>,        
            		"time",<成交时间>    
    	       },       
    	       ...      
    	]      
}
Direction: 1买 2卖 , time为long型
说明:
第一次返回最新的size条
推送数据返回最新的50条数据


订阅产品的最新K线数据
  • websocket.send(“[{"type":"subHq","event":"kline","param":{"businessType":"coin-usdt-btc", "kType":"1min", "size":20}}]”); 取得产品的K线数据

参数

参数名 类型 是否必填 默认值 描述
businessType String - 业务合约类型代码 e.g. coin-usdt-btc (详见附录1)
size int - 返回最新的数量 e.g. 20 最大1500
kType String - 枚举定义如下表,参数如一分钟,参数值1min

kType说明

  •   1min:一分钟K线 ,
  •   5min:五分钟K线 ,
  •   15min:十五分钟K线 ,
  •   30min:三十分钟K线 ,
  •   1hour:一小时K线 ,
  •   2hour:二小时K线 ,
  •   4hour:四小时K线 ,
  •   12hour:十二小时K线 ,
  •   1day:每日K线,
  •   1week:每周K线,
  •   1month:每月K线   

响应 (json)

说明:
第一次返回最新的size条
推送数据返回最新的两条数据

示例:
{
        "success": true,
        "code": 200,
        "version": "0.0.1",
        "event": "kline",
        "param": {"businessType":"coin-usdt-btc", "kType":"1min"},
        "data":[  
    	       {    
            		"time":<时间戳>,    
            		"open",<开盘价>,   
            		"high",<最高价>,   
            		"close",<收盘价>,  
            		"low",<最低价>,    
            		"vol",<成交量>  
    	       },   
    	       {    
            		"time":<时间戳>,    
            		"open",<开盘价>,   
            		"high",<最高价>,   
            		"close",<收盘价>,  
            		"low",<最低价>,    
            		"vol",<成交量>  
    	       },   
    	       ...  
    	]   
    }


错误说明-----接口返回错误示例:
{
     "success": false,
     "code": 20002,
     "version": "0.0.1",
    "msg": "Request params not valid"
}

//错误代码映射
	public static final String[] PARAM_ERROR = {"MK100", "param is invalid"};//未知参数错误,例:传入的json串不对
	public static final String[] PARAM_BUSS_TYPE = {"MK101", "business type is invalid"};//businessType参数错误
	public static final String[] PARAM_DTYPE_PARAM = {"MK102", "dType type is invalid"};//dType参数错误
	public static final String[] PARAM_KTYPE_PARAM = {"MK103", "kType type is invalid"};//kType参数错误
	public static final String[] PARAM_SIZE_PARAM = {"MK103", "SIZE type is invalid"};//size参数错误

附录1

businessType 业务类型代码
  • coin-usdt-btc
Clone this wiki locally