WebSocket API v1/v2 – Ajánlott Python könyvtár és használati példák

Utolsó frissítés: 2025. ápr. 1.

A WebSocket API-nk bármely WebSocket-képes programozási nyelven (Python, Javascript, C#, Go stb.) keresztül elérhető. Számos programozási nyelv kínál WebSocket könyvtárakat, amelyek lehetővé teszik a programozók számára, hogy WebSocket interfészt használjanak anélkül, hogy megértenék a WebSocket protokoll bonyolult részleteit.

A Python az egyik példa, amely számos különböző WebSocket könyvtárat kínál, így honnan tudja egy programozó, hogy melyik könyvtárat használja, vagy hogyan használja a kiválasztott könyvtárat a leghatékonyabban. Az alábbiakban bemutatjuk az általunk ajánlott Python WebSocket könyvtárat, és példákat adunk a könyvtár különböző forgatókönyvekben történő használatára.

WebSocket kliens

Az általunk ajánlott Python WebSocket könyvtár a websocket-client könyvtár. A könyvtár kompatibilis a Python 2 és Python 3 verziókkal is, de új kódokhoz csak a Python 3 használatát javasoljuk, mivel a Python 2 kivezetés alatt áll.

A websocket-client könyvtár letölthető a Python Package Indexről (pypi.org), és telepíthető a mellékelt setup.py fájlon keresztül:

  • python setup.py install

vagy letölthető és telepíthető egyszerre a szabványos Python telepítőeszközzel (pip):

  • pip install websocket-client

Használat

A WebSocket kliens könyvtár használható szinkron (blokkoló) WebSocket kliens vagy aszinkron (nem blokkoló, eseményvezérelt) kliens létrehozására. Mindkét verzió sikeresen tud kommunikálni az API-nkkel, így a választás a megvalósítás specifikus követelményeitől függ (például attól, hogy más feladatoknak párhuzamosan kell-e futniuk).

Például egy egyszerű piaci árfigyelő alkalmazás használhatna szinkron klienst, amely egyszerűen új piaci adatokra vár, és összehasonlítja a piaci árat egy megadott értékkel, míg egy teljes értékű kereskedési botnak aszinkron klienst kellene használnia a piaci adatfolyamokkal külön szálakon (így az elemzési és kereskedési feladatok párhuzamosan folytatódhatnának).

Az alábbiakban mind a szinkron, mind az aszinkron kliensek alapvető példái láthatók, amelyek kiindulópontként szolgálhatnak komplexebb API kódokhoz.

Szinkron WebSocket API interfész

# Import WebSocket client libraryfrom websocket import create_connection# Connect to WebSocket API and subscribe to trade feed for XBT/USD and XRP/USDws = create_connection("wss://ws.kraken.com/")ws.send('{"event":"subscribe", "subscription":{"name":"trade"}, "pair":["XBT/USD","XRP/USD"]}')# Infinite loop waiting for WebSocket datawhile True:   print(ws.recv())

Aszinkron WebSocket API interfész

# Import WebSocket client library (and others)import websocketimport _threadimport time# Define WebSocket callback functionsdef ws_message(ws, message):    print("WebSocket thread: %s" % message)def ws_open(ws):    ws.send('{"event":"subscribe", "subscription":{"name":"trade"}, "pair":["XBT/USD","XRP/USD"]}')def ws_thread(*args):    ws = websocket.WebSocketApp("wss://ws.kraken.com/", on_open = ws_open, on_message = ws_message)    ws.run_forever()# Start a new thread for the WebSocket interface_thread.start_new_thread(ws_thread, ())# Continue other (non WebSocket) tasks in the main threadwhile True:    time.sleep(5)    print("Main thread: %d" % time.time())

A WebSocket kliens könyvtár teljes részletei és utasításai a könyvtár kódarchívumában találhatók.

További segítségre van szükséged?