Senden und Empfangen von Nachrichten über WebSocket in Python

WebSocket Mit der Kommunikation können Sie Echtzeitnachrichten zwischen einem Server und Clients senden und empfangen. Hier finden Sie eine detaillierte Anleitung, wie Sie dies bei der Python Verwendung der websockets Bibliothek erreichen können.

Schritt 1: Installieren Sie die WebSocket Bibliothek

Installieren Sie zunächst die websockets Bibliothek, indem Sie den folgenden Befehl ausführen terminal:

pip install websockets

Schritt 2: Senden und Empfangen von Nachrichten auf dem Server

Nachfolgend finden Sie ein Beispiel für das Senden und Empfangen von Nachrichten auf einem 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()  

Im Codeausschnitt:

  • async def handle_connection(websocket, path):: Diese Funktion verarbeitet WebSocket Verbindungen. Wenn ein Client eine Nachricht sendet, hört diese Funktion zu und sendet eine Antwort zurück.

  • async for message in websocket:: Diese Schleife lauscht über die Verbindung auf Nachrichten vom Client WebSocket.

  • await websocket.send(f"Server received: {message}"): Diese Funktion sendet eine Antwort vom Server über die WebSocket Verbindung zurück an den Client.

Schritt 3: Senden und Empfangen von Nachrichten vom Client

Hier ist ein Beispiel dafür, wie der Client Nachrichten vom WebSocket Server sendet und empfängt:

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())  

Im Codeausschnitt:

  • async with websockets.connect("ws://localhost:8765") as websocket:: Auf diese Weise verbindet sich der Client mit dem WebSocket Server. Der Client stellt eine Verbindung zur localhost Adresse und zum Port her 8765.

  • await websocket.send("Hello, WebSocket!"): Der Client sendet die Nachricht  an den Server. Hello, WebSocket!

  • response = await websocket.recv(): Der Client wartet darauf, über die Verbindung eine Antwort vom Server zu erhalten WebSocket.

Abschluss

Indem Sie die Schritte befolgen und jeden Teil des Beispiels verstehen, haben Sie erfolgreich gelernt, wie Sie Nachrichten über WebSocket in senden und empfangen Python. Dies eröffnet Möglichkeiten zur Erstellung von Echtzeitanwendungen und zum kontinuierlichen Datenaustausch zwischen Server und Clients.