2017-12-15 19 views
1

私は一般的にスクリプトを書くのが新しく、これは簡単なことだとは思うが、解決策が見つからないようだ。私は、暗号の価格に関するティッカー情報を得るために、複数のウェブソケットを聴くためにpython websocketsライブラリを使いたいと思っています。複数のWebソケットを同時に読み込み、Pythonでデータをプロットする

How to get real time bid/ask/price from GDAX websocket feedは、1通貨のフィードを取得するのに適しています。

問題は、run_forever()が2つのフィードを同時に表示することができないため、同時に中断する方法がないことです。

答えて

2

GDAX websocketを使用すると、複数のペアを購読することができます。 以下に示すように、私はBTC-USDETH-USDの両方のペアを購読しています。私は無制限のペアを購読することができると思います。

import websocket 
from json import dumps, loads 
try: 
    import thread 
except ImportError: 
    import _thread as thread 

def on_message(ws, message): 
    parsed_msg = loads(message) 
    print(parsed_msg["product_id"], parsed_msg["price"]) 

def on_open(ws): 
    def run(*args): 
     params = { 
      "type": "subscribe", 
      "channels": [{"name": "ticker", "product_ids": ["BTC-USD", "ETH-USD"]}] 
     } 
     ws.send(dumps(params)) 
    thread.start_new_thread(run,()) 

if __name__ == "__main__": 
    websocket.enableTrace(True) 
    ws = websocket.WebSocketApp("wss://ws-feed.gdax.com", on_open=on_open, on_message = on_message) 
    ws.run_forever() 

GDAXがこれを許可しなかった場合は、複数のスレッドで複数のWebソケットを開くことができますが、この場合は必要ありません。

関連する問題