WebSocket API v1/v2 - Perpustakaan Python yang Disyorkan dan Contoh Penggunaan

Terakhir dikemas kini: 1 Apr 2025

Kami WebSocket API boleh diakses melalui mana-mana bahasa pengaturcaraan yang berkemampuan WebSocket (Python, Javascript, C#, Go, dll.). Banyak bahasa pengaturcaraan menawarkan perpustakaan WebSocket yang membolehkan pengaturcara menggunakan antara muka WebSocket tanpa memahami butiran rumit protokol WebSocket.

Python adalah satu contoh yang menawarkan banyak perpustakaan WebSocket yang berbeza, jadi bagaimana seorang pengaturcara tahu perpustakaan mana yang hendak digunakan, atau bagaimana untuk menggunakan perpustakaan pilihan mereka dengan keberkesanan terbaik. Berikut menyediakan perpustakaan Python WebSocket yang disyorkan dan memberikan beberapa contoh cara menggunakan perpustakaan dalam senario yang berbeza.

WebSocket Client

Perpustakaan Python WebSocket yang disyorkan kami ialah perpustakaan websocket-client. Perpustakaan ini serasi dengan Python 2 dan Python 3, tetapi untuk kod baharu kami mengesyorkan hanya menggunakan Python 3 kerana Python 2 sedang dalam proses penamatan sokongan.

Perpustakaan websocket-client boleh dimuat turun dari Python Package Index (pypi.org) dan dipasang melalui fail setup.py yang disertakan:

  • python setup.py install

atau dimuat turun dan dipasang secara serentak melalui alat pemasangan Python standard (pip):

  • pip install websocket-client

Penggunaan

Perpustakaan klien WebSocket boleh digunakan untuk mencipta klien WebSocket segerak (menyekat) atau klien tak segerak (tidak menyekat, didorong peristiwa). Kedua-dua versi boleh berinteraksi dengan API kami dengan jayanya, jadi pilihan akan bergantung pada keperluan khusus pelaksanaan (seperti sama ada tugas lain perlu berlaku secara selari).

Sebagai contoh, aplikasi pemerhati harga pasaran yang mudah akan dapat menggunakan klien segerak yang hanya menunggu data pasaran baharu dan membandingkan harga pasaran dengan nilai yang ditentukan, manakala bot dagangan berciri penuh perlu menggunakan klien tak segerak dengan suapan data pasaran dalam benang berasingan (supaya analisis dan tugas dagangan boleh diteruskan secara selari).

Berikut adalah contoh asas kedua-dua klien segerak dan tak segerak, yang boleh digunakan sebagai titik permulaan untuk kod API yang lebih kompleks.

Antara Muka API WebSocket Segerak

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

Antara Muka API WebSocket Tak Segerak

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

Butiran penuh dan arahan untuk perpustakaan klien WebSocket tersedia melalui arkib kod perpustakaan.

Perlu bantuan lebih lanjut?