WebSocket Med kommunikation kan du skicka och ta emot meddelanden i realtid mellan en server och klienter. Här är en detaljerad guide om hur du uppnår detta när du Python använder websockets
biblioteket.
Steg 1: Installera WebSocket biblioteket
Installera först websockets
biblioteket genom att köra följande kommando i terminal:
pip install websockets
Steg 2: Skicka och ta emot meddelanden på servern
Nedan är ett exempel på hur man skickar och tar emot meddelanden på en 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()
I kodavsnittet:
-
async def handle_connection(websocket, path):
: Denna funktion hanterar WebSocket anslutningar. När en klient skickar ett meddelande lyssnar denna funktion och skickar ett svar tillbaka. -
async for message in websocket:
: Denna loop lyssnar efter meddelanden från klienten genom anslutningen WebSocket. -
await websocket.send(f"Server received: {message}")
: Denna funktion skickar ett svar från servern tillbaka till klienten via anslutningen WebSocket.
Steg 3: Skicka och ta emot meddelanden från klienten
Här är ett exempel på hur klienten skickar och tar emot meddelanden från servern WebSocket:
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())
I kodavsnittet:
-
async with websockets.connect("ws://localhost:8765") as websocket:
: Så här ansluter klienten till servern WebSocket. Klienten upprättar en anslutning tilllocalhost
adressen och porten8765
. -
await websocket.send("Hello, WebSocket!")
: Klienten skickar meddelandet till servern.Hello, WebSocket!
-
response = await websocket.recv()
: Klienten väntar på att få ett svar från servern via anslutningen WebSocket.
Slutsats
Genom att följa stegen och förstå varje del av exemplet har du framgångsrikt lärt dig hur du skickar och tar emot meddelanden via WebSocket i Python. Detta öppnar möjligheter för att skapa realtidsapplikationer och kontinuerligt datautbyte mellan server och klienter.