kucoin websocket API,如何“订阅”他们的公共频道,他们说不需要授权,但他们要求令牌:(

Joh*_*n R 3 wss websocket cryptocurrency kucoin

问题是关于 kucoin websocket 公共通道(不是交易)的最后交易。

我只想要像其他加密货币交易所一样实时交易,但当我想连接时,"wss://ws-api-futures.kucoin.com/endpoint" 我得到:

WebSocketError:收到意外状态代码(401 未经授权)

文档https://docs.kucoin.com/futures/#create-connection缺乏解释:(

通常,对于其他交易所,我可以在 JavaScript 中执行此操作:

bybit_market_ws = new WebSocket("wss://stream.bybit.com/spot/quote/ws/v2");
bybit_market_ws.onmessage = event => bybit_trades(event.data);
bybit_market_ws.onopen = event => bybit_market_ws.send(JSON.stringify({"topic":"trade","params":{"symbol":"BTCUSDT","binary":false},"event":"sub"}));
function bybit_trades (jsonx) { console.log(JSON.parse(jsonx)); }
Run Code Online (Sandbox Code Playgroud)

那么我该如何使用 kucoin websocket 来做到这一点呢?

根据文档,我需要一个“公共令牌”,但没有解释如何获取该令牌:(

有人知道我如何通过 websocket(公共)通道检索最后的交易吗?

Joh*_*ohn 7

请注意,API 更新时,以下步骤可能会发生变化。所有信息均可在https://docs.kucoin.com/#apply-connect-token找到

  1. 获取公共令牌
    发送一条空的http POST(GET 不起作用)消息到https://api.kucoin.com/api/v1/bullet-public
    回复:
{
    "code": "200000",
    "data": {
        "token": "2neAiuYvAU61ZD...",
        "instanceServers": [
            {
                "endpoint": "wss://ws-api.kucoin.com/endpoint",
                "encrypt": true,
                "protocol": "websocket",
                "pingInterval": 18000,
                "pingTimeout": 10000
            }
        ]
    }
}

Run Code Online (Sandbox Code Playgroud)

  1. 使用上面的响应数据连接到 Websocket :
    websocket:endpoint + "?token=" + token
    示例:wss://ws-api.kucoin.com/endpoint?token=2neAiu....

  2. 获取所有支持的交易
    对发送http GET消息至https://api.kucoin.com/api/v1/symbols

{
    "code": "200000",
    "data": [
        {
            "symbol": "REQ-ETH",
            "name": "REQ-ETH",
            "baseCurrency": "REQ",
            "quoteCurrency": "ETH",
            ...
        },
        {
            "symbol": "BTC-USDC",
            "name": "BTC-USDC",
            "baseCurrency": "BTC",
            "quoteCurrency": "USDC",
            ...
        },
        ...
Run Code Online (Sandbox Code Playgroud)
  1. 获取交易数据
    当建立 websocket 连接时发送 http POST 消息:
{
    "type": "subscribe", //subscribe or unsubscribe
    "topic": "/market/ticker:BTC-USDT,BTC-USDC"
}
Run Code Online (Sandbox Code Playgroud)