# 基本信息
# 介绍
· 您的应用能与服务器建立起长链接,选择订阅的频道与主题,接受服务器推送的最新消息;
# 1. 频道
频道分公有频道与私有频道,每个频道包含不同主题,每个频道的资源、权限也有不同;
· 公有频道(PUBLIC): 通常为公开的数据信息,例如行情、盘口、实时成交等;
· 私有频道(PRIVATE): 通常为用户的私人数据信息,例如资产变更推送,成交消息推送等;会根据APP key 进行资源权限校验;
# 2. 主题
针对业务、模块的不同,Starex Open Websocket 开放了丰富的ws主题 , 以供开发者订阅,并且在持续更新中;
# 3 . 主题参数
每个主题订阅时会有不同的参数,以便开发者进行不同的业务展开;
# 接入指南
# 1 . 握手
· baseURL
ws://api.starex.com/ws
· 握手过程中,同样需要在请求头中传鉴权参数,包括STAREX-APP-KEY-V1、STAREX-TIMESTAMP、STAREX-SIGNATURE ;
· 如果你的应用不支持websocket请求头,也可以在param里面传;
· 收到服务器响应(httpStatus:101)后,代表握手成功,服务器会将你的请求升级为ws协议;
· 握手成功后,您与Starex Open Websocket服务器已经拥有一个长连接;您可以通过发送message向服务器发送指令;服务器也通过推送message来推送您所订阅的最新消息;
# 2 . 发起链接
向ws服务器发送message
{"method":"CONNECT"}
收到服务器响应
{"e":"CONNECTED"}
代表连接成功;
# 3 . 订阅
您需要订阅指定的频道,服务器才会主动向您推送消息;
# 限制
# 连接限制
每个App Key 最多允许保持5个连接;
# 订阅限制
每个连接最多允许订阅50个主题,请合理分配;
# 保持连接
每隔30分钟,服务器会向客户端发送PING的心跳,期望客户端返回PONG心跳,在10秒钟内未收到响应,则会主动断开链接;
# 消息格式
# 请求消息
参数 | 类型 | 是否必填 | 描述 |
---|---|---|---|
method | MethodTypeEnum | 是 | 指令类型 |
subject | String | 否 | 主题,method为订阅(SUBSCRIBE)或取消订阅(UNSUBSCRIBE)时必填 |
MethodTypeEnum
类型 | 描述 |
---|---|
CONNECT | 链接 |
DISCONNECT | 断开连接 |
SUBSCRIBE | 订阅 |
UNSUBSCRIBE | 取消订阅 |
PONG | 心跳,通常为服务器主动向客户端发起PING时,在期望时间内,响应服务器一个PONG,来保持连接存活 |
示例
//发起连接
{"method":"CONNECT"}
//订阅BTC/USDT现货成交
{"method":"SUBSCRIBE","subject":"PUBLIC@SPOT_TRADE?BTC/USDT"}
# 消息推送
参数 | 类型 | 描述 |
---|---|---|
e | EventTypeEnum | 推送事件类型 (event) |
s | String | 主题 (subject),推送的消息通常都有主题,客户端可以通过该字段用来区分业务 |
d | Object | 数据 (data), 根据主题的不同,数据也不同,具体参考主题消息; |
EventTypeEnum
类型 | 描述 |
---|---|
PING | 心跳,通常为服务器主动向客户端发起 |
CONNECTED | 已连接 |
ERROR | 错误 |
示例
//发起连接
{"e":"CONNECTED"}
//发起心跳
{"e":"PING"}