API WebSocket v1/v2 - Libreria Python consigliata ed esempi di utilizzo

Ultimo aggiornamento: 1 apr 2025

La nostra API WebSocket è accessibile tramite qualsiasi linguaggio di programmazione compatibile con WebSocket (Python, Javascript, C#, Go, ecc.). Molti linguaggi di programmazione offrono librerie WebSocket che consentono ai programmatori di utilizzare un'interfaccia WebSocket senza comprendere i dettagli intricati del protocollo WebSocket.

Python è un esempio che offre molte librerie WebSocket diverse, quindi come fa un programmatore a sapere quale libreria usare, o come usare la libreria scelta per la massima efficacia. Quanto segue fornisce la nostra libreria WebSocket Python consigliata e offre alcuni esempi di come utilizzare la libreria in diversi scenari.

Client WebSocket

La nostra libreria WebSocket Python consigliata è la libreria websocket-client. La libreria è compatibile sia con Python 2 che con Python 3, ma per il nuovo codice si consiglia di utilizzare solo Python 3, poiché Python 2 è in fase di deprecazione.

La libreria websocket-client può essere scaricata dal Python Package Index (pypi.org) e installata tramite il file setup.py incluso:

  • python setup.py install

o scaricata e installata contemporaneamente tramite lo strumento di installazione Python standard (pip):

  • pip install websocket-client

Utilizzo

La libreria client WebSocket può essere utilizzata per creare un client WebSocket sincrono (bloccante) o un client asincrono (non bloccante, basato su eventi). Entrambe le versioni possono interagire con la nostra API con successo, quindi la scelta dipenderà dai requisiti specifici dell'implementazione (ad esempio, se altre attività devono essere eseguite in parallelo).

Ad esempio, una semplice app per il monitoraggio dei prezzi di mercato potrebbe utilizzare un client sincrono che attende semplicemente nuovi dati di mercato e confronta il prezzo di mercato con un valore specificato, mentre un bot di trading completo dovrebbe utilizzare un client asincrono con i feed di dati di mercato in thread separati (in modo che le attività di analisi e trading possano continuare in parallelo).

Di seguito sono riportati esempi di base di client sia sincroni che asincroni, che possono essere utilizzati come punto di partenza per un codice API più complesso.

Interfaccia API WebSocket sincrona

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

Interfaccia API WebSocket asincrona

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

Dettagli completi e istruzioni per la libreria client WebSocket sono disponibili tramite l'archivio del codice della libreria.

Hai ancora bisogno di aiuto?