WebSocket API v1/v2 – Empfohlene Python-Bibliothek und Anwendungsbeispiele

Zuletzt aktualisiert: 1. Apr. 2025

Unsere WebSocket API kann über jede WebSocket-fähige Programmiersprache (Python, Javascript, C#, Go usw.) aufgerufen werden. Viele Programmiersprachen bieten WebSocket-Bibliotheken an, die es Programmierern ermöglichen, eine WebSocket-Schnittstelle zu verwenden, ohne die komplexen Details des WebSocket-Protokolls verstehen zu müssen.

Python ist ein Beispiel, das viele verschiedene WebSocket-Bibliotheken bietet. Wie weiß ein Programmierer also, welche Bibliothek er verwenden soll oder wie er die gewählte Bibliothek am effektivsten einsetzt? Im Folgenden stellen wir unsere empfohlene Python WebSocket-Bibliothek vor und geben einige Beispiele, wie die Bibliothek in verschiedenen Szenarien verwendet werden kann.

WebSocket-Client

Unsere empfohlene Python WebSocket-Bibliothek ist die websocket-client Bibliothek. Die Bibliothek ist sowohl mit Python 2 als auch mit Python 3 kompatibel, aber für neuen Code empfehlen wir, nur Python 3 zu verwenden, da Python 2 gerade eingestellt wird.

Die websocket-client Bibliothek kann vom Python Package Index (pypi.org) heruntergeladen und über die enthaltene setup.py-Datei installiert werden:

  • python setup.py install

oder gleichzeitig über das Standard-Installationswerkzeug von Python (pip) heruntergeladen und installiert werden:

  • pip install websocket-client

Verwendung

Die WebSocket-Client-Bibliothek kann verwendet werden, um einen synchronen (blockierenden) WebSocket-Client oder einen asynchronen (nicht blockierenden, ereignisgesteuerten) Client zu erstellen. Beide Versionen können erfolgreich mit unserer API interagieren, sodass die Wahl von den spezifischen Anforderungen der Implementierung abhängt (z. B. ob andere Aufgaben parallel ausgeführt werden müssen).

Zum Beispiel könnte eine einfache App zur Marktpreisüberwachung einen synchronen Client verwenden, der einfach auf neue Marktdaten wartet und den Marktpreis mit einem bestimmten Wert vergleicht, während ein voll ausgestatteter Trading-Bot einen asynchronen Client mit den Marktdaten-Feeds in separaten Threads benötigen würde (damit die Analyse- und Handelsaufgaben parallel fortgesetzt werden können).

Im Folgenden finden Sie grundlegende Beispiele für synchrone und asynchrone Clients, die als Ausgangspunkt für komplexeren API-Code verwendet werden können.

Synchrone WebSocket API-Schnittstelle

# 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())

Asynchrone WebSocket API-Schnittstelle

# 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())

Vollständige Details und Anweisungen für die WebSocket-Client-Bibliothek sind über das Code-Archiv der Bibliothek verfügbar.

Brauchst du weitere Hilfe?