API WebSocket v1/v2 - Bibliothèque Python recommandée et exemples d'utilisation

Dernière mise à jour : 1 avr. 2025

Notre API WebSocket est accessible via n'importe quel langage de programmation compatible WebSocket (Python, Javascript, C#, Go, etc.). De nombreux langages de programmation proposent des bibliothèques WebSocket qui permettent aux programmeurs d'utiliser une interface WebSocket sans comprendre les détails complexes du protocole WebSocket.

Python est un exemple qui offre de nombreuses bibliothèques WebSocket différentes. Comment un programmeur sait-il quelle bibliothèque utiliser, ou comment utiliser la bibliothèque choisie pour une efficacité optimale ? Ce qui suit présente notre bibliothèque WebSocket Python recommandée et donne quelques exemples d'utilisation de la bibliothèque dans différents scénarios.

Client WebSocket

Notre bibliothèque WebSocket Python recommandée est la bibliothèque websocket-client. Cette bibliothèque est compatible avec Python 2 et Python 3, mais pour les nouveaux codes, nous recommandons d'utiliser uniquement Python 3, car Python 2 est en cours de dépréciation.

La bibliothèque websocket-client peut être téléchargée depuis l'index des paquets Python (pypi.org) et installée via le fichier setup.py inclus :

  • python setup.py install

ou téléchargée et installée simultanément via l'outil d'installation Python standard (pip) :

  • pip install websocket-client

Utilisation

La bibliothèque client WebSocket peut être utilisée pour créer un client WebSocket synchrone (bloquant) ou un client asynchrone (non bloquant, piloté par les événements). Les deux versions peuvent interagir avec notre API avec succès, le choix dépendra donc des exigences spécifiques de l'implémentation (par exemple, si d'autres tâches doivent être exécutées en parallèle).

Par exemple, une simple application de surveillance des prix du marché pourrait utiliser un client synchrone qui attendrait simplement de nouvelles données de marché et comparerait le prix du marché à une valeur spécifiée, tandis qu'un bot de trading complet devrait utiliser un client asynchrone avec les flux de données de marché dans des threads séparés (afin que les tâches d'analyse et de trading puissent se poursuivre en parallèle).

Voici des exemples de base de clients synchrones et asynchrones, qui peuvent servir de point de départ pour un code API plus complexe.

Interface API WebSocket synchrone

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

Interface API WebSocket asynchrone

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

Tous les détails et instructions pour la bibliothèque client WebSocket sont disponibles via l'archive de code de la bibliothèque.

Besoin d’aide supplémentaire ?