API de WebSocket v1/v2 - Librería de Python recomendada y ejemplos de uso

Última actualización: 1 abr 2025

Nuestra API de WebSocket puede ser accedida a través de cualquier lenguaje de programación compatible con WebSocket (Python, Javascript, C#, Go, etc.). Muchos lenguajes de programación ofrecen librerías de WebSocket que permiten a los programadores usar una interfaz de WebSocket sin entender los intrincados detalles del protocolo WebSocket.

Python es un ejemplo que ofrece muchas librerías de WebSocket diferentes, así que, ¿cómo sabe un programador qué librería usar, o cómo usar la librería elegida para obtener la máxima eficacia? A continuación, se presenta nuestra librería de WebSocket de Python recomendada y se ofrecen algunos ejemplos de cómo usar la librería en diferentes escenarios.

Cliente WebSocket

Nuestra librería de WebSocket de Python recomendada es la librería websocket-client. La librería es compatible tanto con Python 2 como con Python 3, pero para código nuevo recomendamos usar solo Python 3, ya que Python 2 está en proceso de ser descontinuado.

La librería websocket-client se puede descargar del Índice de Paquetes de Python (pypi.org) e instalar a través del archivo setup.py incluido:

  • python setup.py install

o descargada e instalada simultáneamente a través de la herramienta de instalación estándar de Python (pip):

  • pip install websocket-client

Uso

La librería cliente de WebSocket se puede usar para crear un cliente WebSocket síncrono (bloqueante) o un cliente asíncrono (no bloqueante, basado en eventos). Ambas versiones pueden interactuar con nuestra API con éxito, por lo que la elección dependerá de los requisitos específicos de la implementación (como si otras tareas necesitan ejecutarse en paralelo).

Por ejemplo, una aplicación simple de seguimiento de precios de mercado podría usar un cliente síncrono que simplemente esperara nuevos datos de mercado y comparara el precio de mercado con un valor especificado, mientras que un bot de trading con todas las funciones necesitaría usar un cliente asíncrono con las fuentes de datos de mercado en hilos separados (para que las tareas de análisis y trading pudieran continuar en paralelo).

A continuación, se presentan ejemplos básicos de clientes síncronos y asíncronos, que pueden usarse como punto de partida para un código API más complejo.

Interfaz de API WebSocket síncrona

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

Interfaz de API WebSocket asíncrona

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

Los detalles completos e instrucciones para la librería cliente de WebSocket están disponibles a través del archivo de código de la librería.

¿Necesita más ayuda?