WebSocket kommunikation giver dig mulighed for at sende og modtage meddelelser i realtid mellem en server og klienter. Her er en detaljeret guide til, hvordan du opnår dette ved Python brug af websockets
biblioteket.
Trin 1: Installer WebSocket biblioteket
Installer først biblioteket websockets
ved at køre følgende kommando i terminal:
pip install websockets
Trin 2: Afsendelse og modtagelse af meddelelser på serveren
Nedenfor er et eksempel på, hvordan man sender og modtager beskeder 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 kodestykket:
-
async def handle_connection(websocket, path):
: Denne funktion håndterer WebSocket forbindelser. Når en klient sender en besked, lytter denne funktion og sender et svar tilbage. -
async for message in websocket:
: Denne loop lytter efter beskeder fra klienten gennem WebSocket forbindelsen. -
await websocket.send(f"Server received: {message}")
: Denne funktion sender et svar fra serveren tilbage til klienten via forbindelsen WebSocket.
Trin 3: Afsendelse og modtagelse af beskeder fra klienten
Her er et eksempel på, hvordan klienten sender og modtager beskeder fra serveren 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 kodestykket:
-
async with websockets.connect("ws://localhost:8765") as websocket:
: Dette er hvordan klienten forbinder til serveren WebSocket. Klienten etablerer en forbindelse tillocalhost
adressen og porten8765
. -
await websocket.send("Hello, WebSocket!")
: Klienten sender beskeden til serveren.Hello, WebSocket!
-
response = await websocket.recv()
: Klienten venter på at modtage et svar fra serveren via WebSocket forbindelsen.
Konklusion
Ved at følge trinene og forstå hver del af eksemplet har du med succes lært, hvordan du sender og modtager beskeder via WebSocket i Python. Dette åbner op for muligheder for at skabe realtidsapplikationer og kontinuerlig dataudveksling mellem server og klienter.