在订阅Binance Websocket API时,需要添加 header: {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299'}, 这样就可以避免发送重复数据。
Python代码示例:
import websocket
import json
def on_open(ws):
print("connected")
subscribe_data = {
"method": "SUBSCRIBE",
"params":
[
"btcusdt@aggTrade",
"btcusdt@ticker",
"btcusdt@depth",
],
"id": 1
}
subscribe_json = json.dumps(subscribe_data)
ws.send(subscribe_json)
def on_message(ws, message):
print(message)
def on_error(ws, error):
print(error)
def on_close(ws):
print("disconnected")
if __name__ == "__main__":
ws = websocket.WebSocketApp("wss://stream.binance.com:9443/ws",
on_open=on_open,
on_message=on_message,
on_error=on_error,
on_close=on_close,
header={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299'})
ws.run_forever()
在header中添加指定的 User-Agent 可以避免发送重复数据的问题。