WebSocket API v1/v2 - Aanbevolen Python-bibliotheek en gebruiksvoorbeelden

Laatst bijgewerkt: 1 apr 2025

Onze WebSocket API is toegankelijk via elke programmeertaal die geschikt is voor WebSocket (Python, Javascript, C#, Go, enz.). Veel programmeertalen bieden WebSocket-bibliotheken waarmee programmeurs een WebSocket-interface kunnen gebruiken zonder de ingewikkelde details van het WebSocket-protocol te begrijpen.

Python is een voorbeeld dat veel verschillende WebSocket-bibliotheken biedt. Hoe weet een programmeur dan welke bibliotheek hij moet gebruiken, of hoe hij de gekozen bibliotheek het meest effectief kan gebruiken? Hieronder vindt u onze aanbevolen Python WebSocket-bibliotheek en enkele voorbeelden van hoe u de bibliotheek in verschillende scenario's kunt gebruiken.

WebSocket-client

Onze aanbevolen Python WebSocket-bibliotheek is de websocket-client-bibliotheek. De bibliotheek is compatibel met zowel Python 2 als Python 3, maar voor nieuwe code raden we aan om alleen Python 3 te gebruiken, aangezien Python 2 wordt afgeschreven.

De websocket-client-bibliotheek kan worden gedownload van de Python Package Index (pypi.org) en worden geïnstalleerd via het meegeleverde setup.py-bestand:

  • python setup.py install

of tegelijkertijd gedownload en geïnstalleerd via de standaard Python-installatietool (pip):

  • pip install websocket-client

Gebruik

De WebSocket-clientbibliotheek kan worden gebruikt om een synchrone (blokkerende) WebSocket-client of een asynchrone (niet-blokkerende, gebeurtenisgestuurde) client te maken. Beide versies kunnen succesvol communiceren met onze API, dus de keuze hangt af van de specifieke vereisten van de implementatie (zoals de vraag of andere taken parallel moeten plaatsvinden).

Een eenvoudige app voor het volgen van marktprijzen zou bijvoorbeeld een synchrone client kunnen gebruiken die eenvoudigweg wacht op nieuwe marktgegevens en de marktprijs vergelijkt met een gespecificeerde waarde, terwijl een volwaardige handelsbot een asynchrone client zou moeten gebruiken met de marktgegevensfeeds in afzonderlijke threads (zodat de analyse- en handelstaken parallel kunnen doorgaan).

Hieronder vindt u basisvoorbeelden van zowel synchrone als asynchrone clients, die kunnen dienen als uitgangspunt voor complexere API-code.

Synchrone WebSocket API-interface

# 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-interface

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

Volledige details en instructies voor de WebSocket-clientbibliotheek zijn beschikbaar via het code-archief van de bibliotheek.

Meer hulp nodig?