WebSocket komunikace umožňuje odesílat a přijímat zprávy v reálném čase mezi serverem a klienty. Zde je podrobný návod, jak toho dosáhnout pomocí Python knihovny websockets
.
Krok 1: Nainstalujte WebSocket knihovnu
Nejprve nainstalujte websockets
knihovnu spuštěním následujícího příkazu v terminal:
pip install websockets
Krok 2: Odesílání a přijímání zpráv na serveru
Níže je uveden příklad, jak odesílat a přijímat zprávy na WebSocket serveru:
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()
Ve fragmentu kódu:
-
async def handle_connection(websocket, path):
: Tato funkce zpracovává WebSocket připojení. Když klient odešle zprávu, tato funkce naslouchá a odešle odpověď zpět. -
async for message in websocket:
: Tato smyčka naslouchá zprávám od klienta prostřednictvím WebSocket připojení. -
await websocket.send(f"Server received: {message}")
: Tato funkce odešle odpověď ze serveru zpět klientovi prostřednictvím WebSocket připojení.
Krok 3: Odesílání a přijímání zpráv od klienta
Zde je příklad toho, jak klient odesílá a přijímá zprávy ze WebSocket serveru:
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())
Ve fragmentu kódu:
-
async with websockets.connect("ws://localhost:8765") as websocket:
: Takto se klient připojuje k WebSocket serveru. Klient naváže spojení slocalhost
adresou a portem8765
. -
await websocket.send("Hello, WebSocket!")
: Klient odešle zprávu na server.Hello, WebSocket!
-
response = await websocket.recv()
: Klient čeká na přijetí odpovědi ze serveru prostřednictvím WebSocket připojení.
Závěr
Tím, že budete postupovat podle kroků a porozumět každé části příkladu, jste se úspěšně naučili odesílat a přijímat zprávy prostřednictvím WebSocket v Python. To otevírá možnosti pro vytváření aplikací v reálném čase a nepřetržitou výměnu dat mezi serverem a klienty.