Подписаться на bitFlyer WebSocket - PullRequest
0 голосов
/ 28 апреля 2018

Я установил соединения через веб-сокеты с несколькими биржами криптовалюты, но у меня возникают трудности с подключением к bitFlyer's.

Мой код выглядит следующим образом:

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, расположенный ЗДЕСЬ .

Любая помощь в отправке правильного сообщения очень ценится.

1 Ответ

0 голосов
/ 08 мая 2018

Я считаю, что формат отправленного вами сообщения был неправильным, проверьте следующую ссылку из 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...