Üzenetek küldése és fogadása WebSocket in keresztül Python

WebSocket A kommunikáció lehetővé teszi valós idejű üzenetek küldését és fogadását a szerver és az ügyfelek között. Itt található egy részletes útmutató, hogyan érheti el ezt Python a websockets könyvtár használatával.

1. lépés: Telepítse a WebSocket könyvtárat

Először telepítse a websockets könyvtárat a következő parancs futtatásával a következőben terminal:

pip install websockets

2. lépés: Üzenetek küldése és fogadása a szerveren

Az alábbiakban egy példa látható arra, hogyan lehet üzeneteket küldeni és fogadni egy szerveren WebSocket:

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

A kódrészletben:

  • async def handle_connection(websocket, path):: Ez a funkció a kapcsolatokat kezeli WebSocket. Amikor egy kliens üzenetet küld, ez a funkció figyel, és visszaküldi a választ.

  • async for message in websocket:: Ez a hurok figyeli a kliens üzeneteit a WebSocket kapcsolaton keresztül.

  • await websocket.send(f"Server received: {message}"): Ez a funkció választ küld vissza a szerverről a kliensnek a WebSocket kapcsolaton keresztül.

3. lépés: Üzenetek küldése és fogadása az ügyféltől

Íme egy példa arra, hogy az ügyfél hogyan küld és fogad üzeneteket a szervertől 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())  

A kódrészletben:

  • async with websockets.connect("ws://localhost:8765") as websocket:: A kliens így csatlakozik a szerverhez WebSocket. Az ügyfél kapcsolatot létesít a localhost címmel és a porttal 8765.

  • await websocket.send("Hello, WebSocket!"): A kliens elküldi az üzenetet  a szervernek. Hello, WebSocket!

  • response = await websocket.recv(): A kliens arra vár, hogy a kapcsolaton keresztül választ kapjon a szervertől WebSocket.

Következtetés

A lépések követésével és a példa egyes részeinek megértésével sikeresen megtanulta, hogyan küldhet és fogadhat üzeneteket WebSocket a következőn keresztül Python:. Ez lehetőséget teremt a valós idejű alkalmazások létrehozására és a szerver és a kliensek közötti folyamatos adatcserére.