For information on changes for our US clients, please visit our Support Center article.

En raison d’une demande accrue, la vérification de compte peut être retardée. Veuillez éviter d’envoyer plusieurs demandes, et pour obtenir de meilleurs résultats, vérifiez au préalable nos pré-requis concernant les documents.
Rechercher
Python WebSocket: bibliothèque Python recommandée et exemples d'utilisation
Notre API WebSocket est accessible via tout langage de programmation compatible avec 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 offre par exemple de nombreuses bibliothèques WebSocket différentes. Mais comment un programmeur sait-il quelle bibliothèque utiliser ou comment utiliser la bibliothèque de son choix pour une efficacité optimale? Vous trouverez ci-dessous notre bibliothèque Python WebSocket recommandée et quelques exemples d'utilisation de la bibliothèque dans différents scénarios.

Client WebSocket

Notre bibliothèque Python WebSocket recommandée est la bibliothèque websocket-client. Elle est compatible avec Python 2 et Python 3, mais pour le nouveau code, nous recommandons d'utiliser uniquement Python 3, puisque Python 2 est en phase de devenir obsolète.
La bibliothèque websocket-client peut être téléchargée depuis l'index de package Python (pypi.org) et installée via le fichier setup.py inclus:
  • installation de python setup.py
ou téléchargée et installée simultanément via l'outil d'installation Python standard (pip):
  • installation pip websocket-client

Utilisation

La bibliothèque client WebSocket peut être utilisée pour créer un client WebSocket synchrone (bloquant) ou asynchrone (non bloquant, guidé par les événements). Les deux versions peuvent interagir avec notre API. Le choix dépend donc des exigences spécifiques de la mise en œuvre (par exemple, si d'autres tâches doivent se dérouler en parallèle).
Par exemple, une simple application de suivi des prix du marché serait en mesure d'utiliser un client synchrone qui se contente d'attendre de nouvelles données de marché et de comparer le prix du marché à une valeur spécifiée, tandis qu'un bot de trading assorti de toutes les fonctionnalités disponibles doit utiliser un client asynchrone qui sépare les flux de données du marché entre des threads distincts (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 être utilisés comme point de départ pour un code API plus complexe.
Interface API WebSocket synchrone
# Importer la bibliothèque client WebSocketfrom websocket import create_connection# Connectez-vous à l'API WebSocket et inscrivez-vous au flux de trading propre à BTC/USD et XRP/USDws = create_connection("wss://ws.kraken.com/")ws.send('{"event":"subscribe", "subscription":{"name":"trade"}, "pair":["XBT/USD","XRP/USD"]}')# Boucle infinie en attente des données WebSocketwhile True: print(ws.recv())
Interface API WebSocket asynchrone
# Importer la bibliothèque WebSocket-client (et autres)import websocketimport _threadimport time# Définir les fonctions de rappel WebSocketdef 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()# Démarrer un nouveau thread pour l'interface WebSocket_thread.start_new_thread(ws_thread, ())# Continuer les autres tâches (non WebSocket) dans le thread principalwhile True: time.sleep(5) print("Main thread: %d" % time.time())
Des informations complètes et des instructions relatives à la bibliothèque WebSocket-client sont disponibles via l'archive de code de la bibliothèque.