Binance stream trade via websocket 问题
Binance stream trade via websocket problem
我在执行以下代码时没有收到 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()
我看到的是,您没有使用主机名和端口后的路径!
Raw streams are accessed at /ws/streamName>
Combined streams are accessed at /stream?streams=streamName1/streamName2/streamName3
如果你想通过 websocket.send() 订阅流,那么你必须先创建一个组合流,然后发送有效负载来订阅流。
但你不必重新发明轮子。 python.
有不同的现成实现
我向你推荐我写的这个库:https://github.com/oliver-zehentleitner/unicorn-binance-websocket-api
这将为您节省很多工作:)
此致,
奥利弗
为了使您的代码正常工作,您只需在 websocket url:
的末尾添加 /ws
socket = 'wss://stream.binance.com:9443/ws'
我在执行以下代码时没有收到 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()
我看到的是,您没有使用主机名和端口后的路径!
Raw streams are accessed at /ws/streamName>
Combined streams are accessed at /stream?streams=streamName1/streamName2/streamName3
如果你想通过 websocket.send() 订阅流,那么你必须先创建一个组合流,然后发送有效负载来订阅流。
但你不必重新发明轮子。 python.
有不同的现成实现我向你推荐我写的这个库:https://github.com/oliver-zehentleitner/unicorn-binance-websocket-api
这将为您节省很多工作:)
此致, 奥利弗
为了使您的代码正常工作,您只需在 websocket url:
的末尾添加/ws
socket = 'wss://stream.binance.com:9443/ws'