Pošiljanje in prejemanje sporočil prek WebSocket in Python

WebSocket komunikacija vam omogoča pošiljanje in prejemanje sporočil v realnem času med strežnikom in odjemalci. Tukaj je podroben vodnik o tem, kako to doseči pri Python uporabi websockets knjižnice.

1. korak: Namestite WebSocket knjižnico

Najprej namestite websockets knjižnico tako, da zaženete naslednji ukaz v terminal:

pip install websockets

2. korak: Pošiljanje in prejemanje sporočil na strežniku

Spodaj je primer pošiljanja in prejemanja sporočil na WebSocket strežniku:

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

V delčku kode:

  • async def handle_connection(websocket, path):: Ta funkcija obravnava WebSocket povezave. Ko odjemalec pošlje sporočilo, ta funkcija posluša in pošlje odgovor nazaj.

  • async for message in websocket:: Ta zanka posluša sporočila odjemalca prek WebSocket povezave.

  • await websocket.send(f"Server received: {message}"): Ta funkcija pošlje odgovor s strežnika nazaj odjemalcu prek WebSocket povezave.

3. korak: Pošiljanje in prejemanje sporočil od odjemalca

Tukaj je primer, kako odjemalec pošilja in prejema sporočila s WebSocket strežnika:

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

V delčku kode:

  • async with websockets.connect("ws://localhost:8765") as websocket:: Tako se odjemalec poveže s WebSocket strežnikom. Odjemalec vzpostavi povezavo z localhost naslovom in vrati 8765.

  • await websocket.send("Hello, WebSocket!"): odjemalec pošlje sporočilo  strežniku. Hello, WebSocket!

  • response = await websocket.recv(): Odjemalec čaka, da prejme odgovor od strežnika prek WebSocket povezave.

Zaključek

Z upoštevanjem korakov in razumevanjem vsakega dela primera ste se uspešno naučili pošiljati in prejemati sporočila prek WebSocket v Python. To odpira možnosti za ustvarjanje aplikacij v realnem času in neprekinjeno izmenjavo podatkov med strežnikom in odjemalci.