通过 websocket 问题进行币安流交易

Posted

技术标签:

【中文标题】通过 websocket 问题进行币安流交易【英文标题】:Binance stream trade via websocket problem 【发布时间】:2020-08-16 11:53:17 【问题描述】:

执行以下代码时,我没有收到 Binance api 的响应,这里有什么我可能错过的吗?我需要创建一个帐户才能通过 api 获取流数据吗?

import json
import websocket

socket='wss://stream.binance.com:9443'

def on_open(ws):
    print("opened")
    subscribe_message = 
        "method": "SUBSCRIBE",
        "params":
        [
         "btcusdt@trade",
         "btcusdt@depth"
         ],
         "id": 1
         

    ws.send(json.dumps(subscribe_message))

def on_message(ws, message):
    print("received a message")
    print(json.loads(message))     

def on_close(ws):
    print("closed connection")        

ws = websocket.WebSocketApp(socket, on_open=on_open, on_message=on_message, on_close=on_close)
ws.run_forever()

【问题讨论】:

【参考方案1】:

为了使您的代码正常工作,您只需在 websocket url 的末尾添加/ws

socket = 'wss://stream.binance.com:9443/ws'

【讨论】:

【参考方案2】:

我可以看到,您没有使用主机名和端口之后的路径!

在这里查看缺少的内容: https://github.com/binance-exchange/binance-official-api-docs/blob/master/web-socket-streams.md#general-wss-information

在 /ws/streamName 访问原始流>

在 /stream?streams=streamName1/streamName2/streamName3 访问组合流

如果你想通过 websocket.send() 订阅流,那么你必须先创建一个组合流,然后发送有效负载来订阅流。

但您不必重新发明***。 python有不同的现成实现。

我向你推荐我写的这个库:https://github.com/oliver-zehentleitner/unicorn-binance-websocket-api

这将为您节省大量工作:)

最好的问候, 奥利弗

【讨论】:

以上是关于通过 websocket 问题进行币安流交易的主要内容,如果未能解决你的问题,请参考以下文章

WebSocket---实现定时推送比特币交易信息

使用 Python 通过 WebSockets 访问 API

强制使用以太币发送交易

比特币合约交易怎么玩 新手应该注意什么

cex.io web socket身份验证时间戳错误

比特币白皮书