API WebSocket v1/v2 - Biblioteca Python recomendada e exemplos de uso

Última atualização: 1 de abr. de 2025

Nossa API WebSocket pode ser acessada por qualquer linguagem de programação compatível com WebSocket (Python, Javascript, C#, Go, etc.). Muitas linguagens de programação oferecem bibliotecas WebSocket que permitem aos programadores usar uma interface WebSocket sem entender os detalhes intrincados do protocolo WebSocket.

Python é um exemplo que oferece muitas bibliotecas WebSocket diferentes, então como um programador sabe qual biblioteca usar, ou como usar a biblioteca escolhida para obter a melhor eficácia. O seguinte fornece nossa biblioteca WebSocket Python recomendada e oferece alguns exemplos de como usar a biblioteca em diferentes cenários.

Cliente WebSocket

Nossa biblioteca WebSocket Python recomendada é a biblioteca websocket-client. A biblioteca é compatível com Python 2 e Python 3, mas para novos códigos, recomendamos usar apenas Python 3, pois o Python 2 está em processo de descontinuação.

A biblioteca websocket-client pode ser baixada do Python Package Index (pypi.org) e instalada através do arquivo setup.py incluído:

  • python setup.py install

ou baixada e instalada simultaneamente através da ferramenta de instalação padrão do Python (pip):

  • pip install websocket-client

Uso

A biblioteca cliente WebSocket pode ser usada para criar um cliente WebSocket síncrono (bloqueador) ou um cliente assíncrono (não bloqueador, orientado a eventos). Ambas as versões podem interagir com nossa API com sucesso, então a escolha dependerá dos requisitos específicos da implementação (como se outras tarefas precisariam acontecer em paralelo).

Por exemplo, um aplicativo simples de monitoramento de preços de mercado seria capaz de usar um cliente síncrono que simplesmente esperaria por novos dados de mercado e compararia o preço de mercado a um valor especificado, enquanto um bot de negociação completo precisaria usar um cliente assíncrono com os feeds de dados de mercado em threads separados (para que as tarefas de análise e negociação pudessem continuar em paralelo).

A seguir estão exemplos básicos de clientes síncronos e assíncronos, que podem ser usados como ponto de partida para códigos de API mais complexos.

Interface da 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())

Interface da API WebSocket Assí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())

Detalhes completos e instruções para a biblioteca cliente WebSocket estão disponíveis através do arquivo de código da biblioteca.

Precisa de mais ajuda?