Skicka och ta emot meddelanden via WebSocket in Python

WebSocket Med kommunikation kan du skicka och ta emot meddelanden i realtid mellan en server och klienter. Här är en detaljerad guide om hur du uppnår detta när du Python använder websockets biblioteket.

Steg 1: Installera WebSocket biblioteket

Installera först websockets biblioteket genom att köra följande kommando i terminal:

pip install websockets

Steg 2: Skicka och ta emot meddelanden på servern

Nedan är ett exempel på hur man skickar och tar emot meddelanden 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 kodavsnittet:

  • async def handle_connection(websocket, path):: Denna funktion hanterar WebSocket anslutningar. När en klient skickar ett meddelande lyssnar denna funktion och skickar ett svar tillbaka.

  • async for message in websocket:: Denna loop lyssnar efter meddelanden från klienten genom anslutningen WebSocket.

  • await websocket.send(f"Server received: {message}"): Denna funktion skickar ett svar från servern tillbaka till klienten via anslutningen WebSocket.

Steg 3: Skicka och ta emot meddelanden från klienten

Här är ett exempel på hur klienten skickar och tar emot meddelanden från servern 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 kodavsnittet:

  • async with websockets.connect("ws://localhost:8765") as websocket:: Så här ansluter klienten till servern WebSocket. Klienten upprättar en anslutning till localhost adressen och porten 8765.

  • await websocket.send("Hello, WebSocket!"): Klienten skickar meddelandet  till servern. Hello, WebSocket!

  • response = await websocket.recv(): Klienten väntar på att få ett svar från servern via anslutningen WebSocket.

Slutsats

Genom att följa stegen och förstå varje del av exemplet har du framgångsrikt lärt dig hur du skickar och tar emot meddelanden via WebSocket i Python. Detta öppnar möjligheter för att skapa realtidsapplikationer och kontinuerligt datautbyte mellan server och klienter.