WebSocket API v1/v2 – Anbefalt Python-bibliotek og brukseksempler

Sist oppdatert: 1. apr. 2025

Vår WebSocket API kan nås via ethvert WebSocket-kompatibelt programmeringsspråk (Python, Javascript, C#, Go, osv.). Mange programmeringsspråk tilbyr WebSocket-biblioteker som lar programmerere bruke et WebSocket-grensesnitt uten å forstå de intrikate detaljene i WebSocket-protokollen.

Python er ett eksempel som tilbyr mange forskjellige WebSocket-biblioteker, så hvordan vet en programmerer hvilket bibliotek de skal bruke, eller hvordan de skal bruke det valgte biblioteket mest effektivt. Følgende gir vårt anbefalte Python WebSocket-bibliotek og gir noen eksempler på hvordan biblioteket kan brukes i forskjellige scenarier.

WebSocket-klient

Vårt anbefalte Python WebSocket-bibliotek er websocket-client-biblioteket. Biblioteket er kompatibelt med både Python 2 og Python 3, men for ny kode anbefaler vi kun å bruke Python 3, da Python 2 er i ferd med å bli avviklet.

websocket-client-biblioteket kan lastes ned fra Python Package Index (pypi.org) og installeres via den inkluderte setup.py-filen:

  • python setup.py install

eller lastes ned og installeres samtidig via standard Python-installasjonsverktøyet (pip):

  • pip install websocket-client

Bruk

WebSocket-klientbiblioteket kan brukes til å opprette en synkron (blokkerende) WebSocket-klient eller en asynkron (ikke-blokkerende, hendelsesdrevet) klient. Begge versjonene kan samhandle med vår API uten problemer, så valget vil avhenge av de spesifikke kravene til implementeringen (for eksempel om andre oppgaver måtte skje parallelt).

For eksempel vil en enkel markedsprisovervåkingsapp kunne bruke en synkron klient som ganske enkelt ventet på nye markedsdata og sammenlignet markedsprisen med en spesifisert verdi, mens en fullverdig handelsbot ville måtte bruke en asynkron klient med markedsdatafeedene i separate tråder (slik at analyse- og handelsoppgavene kunne fortsette parallelt).

Følgende er grunnleggende eksempler på både synkrone og asynkrone klienter, som kan brukes som et utgangspunkt for mer kompleks API-kode.

Synkront WebSocket API-grensesnitt

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

Asynkront WebSocket API-grensesnitt

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

Fullstendige detaljer og instruksjoner for WebSocket-klientbiblioteket er tilgjengelig via bibliotekets kode-arkiv.

Trenger du mer hjelp?