Sende og motta meldinger via WebSocket in Python

WebSocket kommunikasjon lar deg sende og motta sanntidsmeldinger mellom en server og klienter. Her er en detaljert veiledning for hvordan du oppnår dette ved Python bruk av websockets biblioteket.

Trinn 1: Installer WebSocket biblioteket

Installer først websockets biblioteket ved å kjøre følgende kommando i terminal:

pip install websockets

Trinn 2: Sende og motta meldinger på serveren

Nedenfor er et eksempel på hvordan du sender og mottar meldinger 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 kodebiten:

  • async def handle_connection(websocket, path):: Denne funksjonen håndterer WebSocket tilkoblinger. Når en klient sender en melding, lytter denne funksjonen og sender et svar tilbake.

  • async for message in websocket:: Denne sløyfen lytter etter meldinger fra klienten gjennom tilkoblingen WebSocket.

  • await websocket.send(f"Server received: {message}"): Denne funksjonen sender et svar fra serveren tilbake til klienten via tilkoblingen WebSocket.

Trinn 3: Sende og motta meldinger fra klienten

Her er et eksempel på hvordan klienten sender og mottar meldinger 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 kodebiten:

  • async with websockets.connect("ws://localhost:8765") as websocket:: Dette er hvordan klienten kobler seg til serveren WebSocket. Klienten etablerer en forbindelse til localhost adressen og porten 8765.

  • await websocket.send("Hello, WebSocket!"): Klienten sender meldingen  til serveren. Hello, WebSocket!

  • response = await websocket.recv(): Klienten venter på å motta svar fra serveren via tilkoblingen WebSocket.

Konklusjon

Ved å følge trinnene og forstå hver del av eksemplet, har du lært hvordan du sender og mottar meldinger via WebSocket i Python. Dette åpner for muligheter for å lage sanntidsapplikasjoner og kontinuerlig datautveksling mellom server og klienter.