跳到主要内容

用户数据流请求

用户数据流订阅

常规信息:

  • 用户数据流订阅允许您通过 WebSocket 连接接收与指定帐户相关的所有事件。
  • 有两种方式可以启用订阅:
    • 如果您拥有已通过验证的会话,则可以使用 userDataStream.subscribe 来订阅该已通过验证帐户的相关事件。
    • 在任何会话中,无论是否通过验证,如果您能为相关账户提供 API Key, 那么您可以使用 userdataStream.subscribe.signature 来订阅一个或多个账户的相关事件。
    • 一个帐户在指定连接上只能有一个有效订阅。
  • 订阅由用订阅时返回的 subscriptionId 标识。该 subscriptionId 允许您将收到的事件映射到给定的订阅。
  • 可以使用 session.subscriptions 查找会话的所有有效订阅。
  • 限制
    • 单个会话最多可同时支持1,000 个有效订阅
      • 尝试启用超出此限制的新订阅将导致错误。
      • 如果您的帐户非常活跃,我们建议您不要一次启用过多的订阅,以免连接过载。
    • 单个会话在其生命周期内最多可处理65,535 个订阅
      • 如果达到此限制,您将收到错误,并且必须重新建立连接才能启用新的订阅。
  • 要验证用户数据流订阅的状态,请检查 session.status 中的 userDataStream 字段:
    • null - 此 WebSocket API 上不提供用户数据流订阅。
    • true - 此会话中至少有一个有效订阅
    • false - 此会话中没有有效订阅

订阅用户数据流 (USER_STREAM)

{
"id": "d3df8a21-98ea-4fe0-8f4e-0fcea5d418b7",
"method": "userDataStream.subscribe"
}

订阅当前 WebSocket 连接中的用户数据流。

注意:

  • 此方法需要使用 Ed25519 密钥并经过鉴权的 WebSocket 连接。请参考 session.logon
  • 如果需要查看订阅状态,可以通过 session.status 查询,当userDataStream 字段值为 true 时,表示您有一个有效的订阅.
  • 用户数据流在 JSON 和 SBE 会话 中均可用。
    • 有关事件格式详情,请参阅 用户数据流
    • 对于 SBE,仅支持 SBE 模式 2:1 或更高版本。

权重: 2

参数:

响应:

{
"id": "d3df8a21-98ea-4fe0-8f4e-0fcea5d418b7",
"status": 200,
"result": {
"subscriptionId": 0
}
}

取消订阅用户数据流

{
"id": "d3df8a21-98ea-4fe0-8f4e-0fcea5d418b7",
"method": "userDataStream.unsubscribe"
}

取消订阅当前 WebSocket 连接中的用户数据流。

请注意 session.logout 只会关闭由 userdataStream.subscribe 创建的订阅,并不会关闭通过 userDataStream.subscribe.signature 创建的订阅。

权重: 2

参数:

名称类型是否必需描述
subscriptionIdINTNo如果在进行调用时不用该参数,将会关闭所有订阅。
如果在进行调用时使用 subscriptionId 参数,如果该 ID 存在的话,将尝试关闭与该 ID 匹配的订阅。

响应:

{
"id": "d3df8a21-98ea-4fe0-8f4e-0fcea5d418b7",
"status": 200,
"result": {}
}

显示所有订阅

{
"id": "d3df5a22-88ea-4fe0-9f4e-0fcea5d418b7",
"method": "session.subscriptions",
"params": {}
}

注意:

  • 用户按需要跟踪相关帐户的对应订阅情况。

权重: 2

数据源: 缓存

响应:

{
"id": "d3df5a22-88ea-4fe0-9f4e-0fcea5d418b7",
"status": 200,
"result": [
{
"subscriptionId": 0
},
{
"subscriptionId": 1
}
]
}

通过签名订阅的方式订阅用户数据流 (USER_STREAM)

{
"id": "d3df8a22-98ea-4fe0-9f4e-0fcea5d418b7",
"method": "userDataStream.subscribe.signature",
"params": {
"apiKey": "mjcKCrJzTU6TChLsnPmgnQJJMR616J4yWvdZWDUeXkk6vL6dLyS7rcVOQlADlVjA",
"timestamp": 1747385641636,
"signature": "yN1vWpXb+qoZ3/dGiFs9vmpNdV7e3FxkA+BstzbezDKwObcijvk/CVkWxIwMCtCJbP270R0OempYwEpS6rDZCQ=="
}
}

权重: 2

参数:

名称类型是否必需描述
apiKeySTRINGYes
timestampLONGYes
signatureSTRINGYes

数据源: 缓存

响应:

{
"id": "d3df8a22-98ea-4fe0-9f4e-0fcea5d418b7",
"status": 200,
"result": {
"subscriptionId": 0
}
}