listenToken订阅用户数据流
当前有以下两种方式订阅用户数据流:
- [首选] 直接通过WebSocket API 使用listenToken.
- 连接WebSocket API。
- 使用接口 **POST
/sapi/v1/userListenToken
**创建listenToken。 - 使用方法 userDataStream.subscribe.listenToken 发送listenToken并订阅用户数据流。
- 关于WebSocket API的详细信息,请参考WebSocket API documentation。
- [已弃用] 在WebSocket 使用listenKey订阅信息流,主要包含:
- 账户信息流连接
- POST
/sapi/v1/userDataStream
: 生成杠杆账户listenKey (USER_STREAM) - PUT
/sapi/v1/userDataStream
: 延长杠杆账户listenKey有效期(USER_STREAM) - DELETE
/sapi/v1/userDataStream
: 关闭杠杆账户listenKey (USER_STREAM) - POST
/sapi/v1/userDataStream/isolated
: 生成逐仓杠杆账户listenKey (USER_STREAM) - PUT
/sapi/v1/userDataStream/isolated
: 延长逐仓杠杆账户listenKey有效期(USER_STREAM) - DELETE
/sapi/v1/userDataStream/isolated
: 关闭逐仓杠杆账户listenKey (USER_STREAM) - For more information about how to use a listenKey on the WebSocket Streams, see User Data Streams for Binance
两个源都将 实时推送与您的帐户相关的所有事件.
生成杠杆账户listenToken(USER_STREAM)
接口描述
创建一个新的listenToken,授权用户在限定时间内访问当前账户的用户数据流。数据流的有效期由validity参数指定(毫秒) ,数据流的有效期由 validity 参数(毫秒)指定,默认为 24 小时,最长为 24 小时。响应中包含 listenToken 和相应的 expirationTime(以毫秒为单位)。
HTTP请求
POST /sapi/v1/userListenToken
请求权重(UID): 1
请求参数
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | CONDITIONAL | 交易对名称,当isIsolated为true时必填,例如:BNBUSDT |
isIsolated | BOOLEAN | NO | 是否为逐仓杠杆,true表示逐仓,默认为全仓 |
validity | LONG | NO | 有效期(毫秒) ,默认24小时,最大24小时 |
说明
- 数据流的有效期由validity参数指定,默认24小时,最大24小时。过期时间 = 当前时间 + 有效期。
- 返回token和过期时间expirationTime。
响应示例
{
"token": "6xXxePXwZRjVSHKhzUCCGnmN3fkvMTXru+pYJS8RwijXk9Vcyr3rkwfVOTcP2OkONqciYA",
"expirationTime": 1758792204196
}
订阅用户数据流使用listenToken (USER_STREAM)
接口描述
使用 listenToken 订阅用户数据流。
该方法必需由WebSocket API调用。关于WebSocket API的更多信息请参考:WebSocket API 。
请求示例
{
"id": "f3a8f7a29f2e54df796db582f3d",
"method": "userDataStream.subscribe.listenToken",
"params": {
"listenToken": "5DbylArkmImhyHkpG6s9tbiFy5uAMTFwzx9vwsFjDv9dC3GkKxSuoTCj0HvcJC0WYi8
}
}
请求权重(UID):2
请求参数
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
listenToken | STRING | YES | 监听token |
说明
- 允许非登录会话使用此功能。
- 如果 listenToken 无效,将返回错误代码 -1209 。
- WebSocket API 不会自动续订订阅。要延长订阅的有效期,您必须在当前订阅到期前调用
/sapi/v1/userListenToken
,获取一个包含更新后的 expirationTime 的新 listenToken,然后再次调用userDataStream.subscribe.listenToken
并传入新的 listenToken。这样可以无缝地将您的订阅续订至新的 expirationDate。 - 如果订阅未延长,它将过期,您将收到“eventStreamTerminated”事件(见下面的示例)。
- 如果您需要更佳性能,可以使用 SBE 格式而非 JSON 格式接收事件。更多详情,请参阅简单二进制编码 (SBE) 常见问题解答
响应示例
{
"subscriptionId": 0,
"expirationTime": 1749094553955907
}
订阅过期示例
{
"subscriptionId": 0,
"event": {
"e": "eventStreamTerminated",
"E": 1759089357377
}
}