Viestien lähettäminen ja vastaanottaminen WebSocket in Python

WebSocket viestinnän avulla voit lähettää ja vastaanottaa reaaliaikaisia ​​viestejä palvelimen ja asiakkaiden välillä. Tässä on yksityiskohtainen opas tämän saavuttamiseen kirjaston Python käytössä websockets.

Vaihe 1: Asenna WebSocket kirjasto

Asenna ensin websockets kirjasto suorittamalla seuraava komento hakemistossa terminal:

pip install websockets

Vaihe 2: Viestien lähettäminen ja vastaanottaminen palvelimella

Alla on esimerkki viestien lähettämisestä ja vastaanottamisesta palvelimella 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()  

Koodinpätkässä:

  • async def handle_connection(websocket, path):: Tämä toiminto käsittelee WebSocket yhteyksiä. Kun asiakas lähettää viestin, tämä toiminto kuuntelee ja lähettää vastauksen takaisin.

  • async for message in websocket:: Tämä silmukka kuuntelee asiakkaalta yhteyden kautta tulevia viestejä WebSocket.

  • await websocket.send(f"Server received: {message}"): Tämä toiminto lähettää vastauksen palvelimelta takaisin asiakkaalle yhteyden kautta WebSocket.

Vaihe 3: Viestien lähettäminen ja vastaanottaminen asiakkaalta

Tässä on esimerkki siitä, kuinka asiakas lähettää ja vastaanottaa viestejä palvelimelta 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())  

Koodinpätkässä:

  • async with websockets.connect("ws://localhost:8765") as websocket:: Näin asiakas muodostaa yhteyden palvelimeen WebSocket. Asiakas muodostaa yhteyden osoitteeseen localhost ja porttiin 8765.

  • await websocket.send("Hello, WebSocket!"): Asiakas lähettää viestin  palvelimelle. Hello, WebSocket!

  • response = await websocket.recv(): Asiakas odottaa saavansa vastauksen palvelimelta yhteyden kautta WebSocket.

Johtopäätös

Seuraamalla ohjeita ja ymmärtämällä kunkin esimerkin osan olet onnistuneesti oppinut lähettämään ja vastaanottamaan viestejä -sovelluksen WebSocket kautta Python. Tämä avaa mahdollisuuksia luoda reaaliaikaisia ​​sovelluksia ja jatkuvaa tiedonvaihtoa palvelimen ja asiakkaiden välillä.