WebSocket la comunicazione consente di inviare e ricevere messaggi in tempo reale tra un server e client. Ecco una guida dettagliata su come raggiungere questo obiettivo utilizzando Python la websockets
libreria.
Passaggio 1: installare la WebSocket libreria
Innanzitutto, installa la websockets
libreria eseguendo il seguente comando in terminal:
pip install websockets
Passaggio 2: invio e ricezione di messaggi sul server
Di seguito è riportato un esempio di come inviare e ricevere messaggi su un WebSocket server:
import asyncio
import websockets
# WebSocket connection handling function
async def handle_connection(websocket, path):
async for message in websocket:
await websocket.send(f"Server received: {message}")
# Initialize the WebSocket server
start_server = websockets.serve(handle_connection, "localhost", 8765)
# Run the server within the event loop
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
Nello snippet di codice:
-
async def handle_connection(websocket, path):
: Questa funzione gestisce WebSocket le connessioni. Quando un client invia un messaggio, questa funzione ascolta e invia una risposta. -
async for message in websocket:
: questo ciclo ascolta i messaggi dal client attraverso la WebSocket connessione. -
await websocket.send(f"Server received: {message}")
: Questa funzione invia una risposta dal server al client tramite la WebSocket connessione.
Passaggio 3: invio e ricezione di messaggi dal client
Ecco un esempio di come il client invia e riceve messaggi dal WebSocket server:
import asyncio
import websockets
async def send_and_receive():
async with websockets.connect("ws://localhost:8765") as websocket:
await websocket.send("Hello, WebSocket!")
response = await websocket.recv()
print("Received:", response)
asyncio.get_event_loop().run_until_complete(send_and_receive())
Nello snippet di codice:
-
async with websockets.connect("ws://localhost:8765") as websocket:
: Questo è il modo in cui il client si connette al WebSocket server. Il client stabilisce una connessione all'indirizzolocalhost
e alla porta8765
. -
await websocket.send("Hello, WebSocket!")
: Il client invia il messaggio al server.Hello, WebSocket!
-
response = await websocket.recv()
: Il client attende di ricevere una risposta dal server tramite la WebSocket connessione.
Conclusione
Seguendo i passaggi e comprendendo ogni parte dell'esempio, hai imparato con successo come inviare e ricevere messaggi tramite WebSocket in Python. Ciò apre possibilità per la creazione di applicazioni in tempo reale e lo scambio continuo di dati tra server e client.