Afsendelse og modtagelse af beskeder via WebSocket in Python

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 til localhost adressen og porten 8765.

  • 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.