Trimiterea și primirea mesajelor prin WebSocket in Python

WebSocket comunicarea vă permite să trimiteți și să primiți mesaje în timp real între un server și clienți. Iată un ghid detaliat despre cum să realizați acest lucru în Python utilizarea websockets bibliotecii.

Pasul 1: Instalați WebSocket biblioteca

Mai întâi, instalați websockets biblioteca rulând următoarea comandă în terminal:

pip install websockets

Pasul 2: Trimiterea și primirea mesajelor pe server

Mai jos este un exemplu despre cum să trimiteți și să primiți mesaje pe un 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()  

În fragmentul de cod:

  • async def handle_connection(websocket, path):: Această funcție gestionează WebSocket conexiunile. Când un client trimite un mesaj, această funcție ascultă și trimite un răspuns înapoi.

  • async for message in websocket:: Această buclă ascultă mesajele de la client prin WebSocket conexiune.

  • await websocket.send(f"Server received: {message}"): Această funcție trimite un răspuns de la server înapoi către client prin intermediul WebSocket conexiunii.

Pasul 3: Trimiterea și primirea mesajelor de la client

Iată un exemplu despre modul în care clientul trimite și primește mesaje de la WebSocket server:

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

În fragmentul de cod:

  • async with websockets.connect("ws://localhost:8765") as websocket:: Așa se conectează clientul la WebSocket server. Clientul stabilește o conexiune la localhost adresa și portul 8765.

  • await websocket.send("Hello, WebSocket!"): clientul trimite mesajul  către server. Hello, WebSocket!

  • response = await websocket.recv(): Clientul așteaptă să primească un răspuns de la server prin intermediul WebSocket conexiunii.

Concluzie

Urmând pașii și înțelegând fiecare parte a exemplului, ați învățat cu succes cum să trimiteți și să primiți mesaje prin WebSocket în Python. Acest lucru deschide posibilități pentru crearea de aplicații în timp real și schimb continuu de date între server și clienți.