Berichten verzenden en ontvangen via WebSocket in Python

WebSocket Met communicatie kunt u real-time berichten verzenden en ontvangen tussen een server en clients. Hier is een gedetailleerde handleiding over hoe u dit kunt bereiken bij Python het gebruik van de websockets bibliotheek.

Stap 1: installeer de WebSocket bibliotheek

Installeer eerst de websockets bibliotheek door de volgende opdracht uit te voeren in de terminal:

pip install websockets

Stap 2: Berichten verzenden en ontvangen op de server

Hieronder ziet u een voorbeeld van het verzenden en ontvangen van berichten op een 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()  

In het codefragment:

  • async def handle_connection(websocket, path):: Deze functie handelt WebSocket verbindingen af. Wanneer een client een bericht verzendt, luistert deze functie en stuurt een antwoord terug.

  • async for message in websocket:: Deze lus luistert naar berichten van de client via de WebSocket verbinding.

  • await websocket.send(f"Server received: {message}"): Deze functie stuurt een antwoord van de server terug naar de client via de WebSocket verbinding.

Stap 3: Berichten verzenden en ontvangen van de klant

Hier is een voorbeeld van hoe de client berichten van de server verzendt en ontvangt 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())  

In het codefragment:

  • async with websockets.connect("ws://localhost:8765") as websocket:: Dit is hoe de client verbinding maakt met de WebSocket server. De client brengt een verbinding tot stand met het localhost adres en de poort 8765.

  • await websocket.send("Hello, WebSocket!"): De client stuurt het bericht  naar de server. Hello, WebSocket!

  • response = await websocket.recv(): De client wacht op een reactie van de server via de WebSocket verbinding.

Conclusie

Door de stappen te volgen en elk deel van het voorbeeld te begrijpen, heb je met succes geleerd hoe je berichten kunt verzenden en ontvangen via WebSocket in Python. Dit opent mogelijkheden voor het creëren van real-time applicaties en continue gegevensuitwisseling tussen server en clients.