WebSocket komunikacija vam omogoča pošiljanje in prejemanje sporočil v realnem času med strežnikom in odjemalci. Tukaj je podroben vodnik o tem, kako to doseči pri Python uporabi websockets
knjižnice.
1. korak: Namestite WebSocket knjižnico
Najprej namestite websockets
knjižnico tako, da zaženete naslednji ukaz v terminal:
pip install websockets
2. korak: Pošiljanje in prejemanje sporočil na strežniku
Spodaj je primer pošiljanja in prejemanja sporočil na WebSocket strežniku:
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()
V delčku kode:
-
async def handle_connection(websocket, path):
: Ta funkcija obravnava WebSocket povezave. Ko odjemalec pošlje sporočilo, ta funkcija posluša in pošlje odgovor nazaj. -
async for message in websocket:
: Ta zanka posluša sporočila odjemalca prek WebSocket povezave. -
await websocket.send(f"Server received: {message}")
: Ta funkcija pošlje odgovor s strežnika nazaj odjemalcu prek WebSocket povezave.
3. korak: Pošiljanje in prejemanje sporočil od odjemalca
Tukaj je primer, kako odjemalec pošilja in prejema sporočila s WebSocket strežnika:
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())
V delčku kode:
-
async with websockets.connect("ws://localhost:8765") as websocket:
: Tako se odjemalec poveže s WebSocket strežnikom. Odjemalec vzpostavi povezavo zlocalhost
naslovom in vrati8765
. -
await websocket.send("Hello, WebSocket!")
: odjemalec pošlje sporočilo strežniku.Hello, WebSocket!
-
response = await websocket.recv()
: Odjemalec čaka, da prejme odgovor od strežnika prek WebSocket povezave.
Zaključek
Z upoštevanjem korakov in razumevanjem vsakega dela primera ste se uspešno naučili pošiljati in prejemati sporočila prek WebSocket v Python. To odpira možnosti za ustvarjanje aplikacij v realnem času in neprekinjeno izmenjavo podatkov med strežnikom in odjemalci.