行情 API

Websocket 简介#

WebSocket是HTML5一种新的协议(Protocol)。它实现了用户端与服务器全双工通信, 使得数据可以快速地双向传播。通过一次简单的握手就可以建立用户端和服务器连接, 服务器根据业务规则可以主动推送信息给用户端。其优点如下:

  • 用户端和服务器进行数据传输时,请求头信息比较小,大概2个字节。
  • 用户端和服务器皆可以主动地发送数据给对方。
  • 不需要多次创建 TCP 请求和销毁,节约宽带和服务器的资源。

连接#

连接限制:3 次/秒 (基于IP)

当订阅私有频道时,使用私有服务的地址

请求限制

每个连接 对于 订阅/取消订阅/登录 请求的总次数限制为 480 次/小时 如果出现网络问题,系统会自动断开连接 如果连接成功后 30s 未订阅或订阅后 30s 内服务器未向用户推送数据,系统会自动断开连接

为了保持连接有效且稳定,建议您进行以下操作:

  1. 每次接收到消息后,用户设置一个定时器,定时N秒,N 小于 30。
  2. 如果定时器被触发(N 秒内没有收到新消息),发送字符串 'ping'。
  3. 期待一个文字字符串 'pong' 作为回应。如果在 N 秒内未收到,请发出错误或重新连接。

连接数限制

API KEY 维度,订阅每个 WebSocket 频道的最大连接数为 30 个。每个 WebSocket 连接都由唯一的 connId 标识。 受此限制的 WebSocket 频道如下:

  1. 价格频道
  2. k 线频道
  3. 交易频道

若用户通过不同的请求参数在同一个 WebSocket 连接下订阅同一个频道,只算为一次连接。若用户使用相同或不同的 WebSocket 连接订阅上述频道,例如价格频道和交易频道。在该两个频道之间,计数不会累计,因为它们被视作不同的频道。简言之,系统计算每个频道对应的 WebSocket 连接数量。 新链接订阅频道时,平台将对该订阅返回channel-conn-count的消息同步链接数量。 链接数量更新

{
    "event":"channel-conn-count",
    "channel":"prices",
    "connCount": "2",
    "connId":"abcd1234"
}

当超出限制时,一般最新订阅的链接会收到拒绝。用户会先收到平时的订阅成功信息然后收到channel-conn-count-error消息,代表平台终止了这个链接的订阅。在异常场景下平台会终止已订阅的现有链接。 链接数量限制报错

{
    "event": "channel-conn-count-error",
    "channel": "prices",
    "connCount": "20",
    "connId":"a4d3ae55"
}

通知#

WebSocket有一种消息类型(event=notice)。 用户会在如下场景收到此类信息:

  • Websocket服务升级断线 在推送服务升级前30秒会推送信息,告知用户WebSocket服务即将升级。用户可以重新建立新的连接避免由于断线造成的影响。 响应示例
{
    "event": "notice",
    "code": "64008",
    "msg": "The connection will soon be closed for a service upgrade. Please reconnect.",
    "connId": "a4d3ae55"
}