WebSocket comunicarea vă permite să trimiteți și să primiți mesaje în timp real între un server și clienți. Iată un ghid detaliat despre cum să realizați acest lucru în Python utilizarea websockets
bibliotecii.
Pasul 1: Instalați WebSocket biblioteca
Mai întâi, instalați websockets
biblioteca rulând următoarea comandă în terminal:
pip install websockets
Pasul 2: Trimiterea și primirea mesajelor pe server
Mai jos este un exemplu despre cum să trimiteți și să primiți mesaje pe 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()
În fragmentul de cod:
-
async def handle_connection(websocket, path):
: Această funcție gestionează WebSocket conexiunile. Când un client trimite un mesaj, această funcție ascultă și trimite un răspuns înapoi. -
async for message in websocket:
: Această buclă ascultă mesajele de la client prin WebSocket conexiune. -
await websocket.send(f"Server received: {message}")
: Această funcție trimite un răspuns de la server înapoi către client prin intermediul WebSocket conexiunii.
Pasul 3: Trimiterea și primirea mesajelor de la client
Iată un exemplu despre modul în care clientul trimite și primește mesaje de la 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())
În fragmentul de cod:
-
async with websockets.connect("ws://localhost:8765") as websocket:
: Așa se conectează clientul la WebSocket server. Clientul stabilește o conexiune lalocalhost
adresa și portul8765
. -
await websocket.send("Hello, WebSocket!")
: clientul trimite mesajul către server.Hello, WebSocket!
-
response = await websocket.recv()
: Clientul așteaptă să primească un răspuns de la server prin intermediul WebSocket conexiunii.
Concluzie
Urmând pașii și înțelegând fiecare parte a exemplului, ați învățat cu succes cum să trimiteți și să primiți mesaje prin WebSocket în Python. Acest lucru deschide posibilități pentru crearea de aplicații în timp real și schimb continuu de date între server și clienți.