Subscribe to bitFlyer WebSocket



我已经设置了WebSocket连接到多个加密货币交换,但是我很难连接到Bitflyer的。

我的代码如下:

import websocket
import json
def on_message(ws, message):
    msg = json.loads(message)
    print(msg)
def on_error(ws, error):
    print(error)
def on_close(ws):
    print("### closed ###")
def on_open(ws):
    ws.send(json.dumps({"method":"subscribe", "channel":"lightning_executions_FX_BTC_JPY"}))
while True:   
    if __name__ == "__main__":
        #websocket.enableTrace(True)
        ws = websocket.WebSocketApp("wss://ws.lightstream.bitflyer.com/json-rpc",
                                    on_message=on_message,
                                    on_error=on_error,
                                    on_close=on_close)
        ws.on_open = on_open
        ws.run_forever()

我尝试了我的on_open((消息的许多变体,并且大多数导致 ### closed ### Invalid close opcode.错误。

不幸的是,他们的文档不包含位于此处的Python样本。

非常感谢发送正确消息的任何帮助。

我相信您发送的消息的格式是错误的,请从https://lightning.bitflyer.jp/docs/playgroundRealTime中查看以下引用,猜猜它将解决。

# pip install websocket-client
import websocket
import json
CHANNEL = "lightning_board_snapshot_<productCode>"
def on_message(ws, message):
    message = json.loads(message)
    if message["method"] == "channelMessage":
        print("{} {}".format(message["params"]["channel"], message["params"]["message"]))
def on_open(ws):
    ws.send(json.dumps({"method": "subscribe", "params": {"channel": CHANNEL}}))
if __name__ == "__main__":
    // note: reconnection handling needed.
    ws = websocket.WebSocketApp("wss://ws.lightstream.bitflyer.com/json-rpc",
                              on_message = on_message, on_open = on_open)
    ws.run_forever()

最新更新