Slanje i primanje poruka putem WebSocket in Python

WebSocket komunikacija vam omogućuje slanje i primanje poruka u stvarnom vremenu između poslužitelja i klijenata. Evo detaljnog vodiča o tome kako to postići korištenjem Python knjižnice websockets.

Korak 1: Instalirajte WebSocket biblioteku

Prvo instalirajte websockets biblioteku pokretanjem sljedeće naredbe u terminal:

pip install websockets

Korak 2: Slanje i primanje poruka na poslužitelju

Ispod je primjer kako slati i primati poruke na WebSocket poslužitelju:

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

U isječku koda:

  • async def handle_connection(websocket, path):: Ova funkcija upravlja WebSocket vezama. Kada klijent pošalje poruku, ova funkcija sluša i šalje odgovor.

  • async for message in websocket:: Ova petlja osluškuje poruke od klijenta putem WebSocket veze.

  • await websocket.send(f"Server received: {message}"): Ova funkcija šalje odgovor s poslužitelja natrag klijentu putem WebSocket veze.

Korak 3: Slanje i primanje poruka od klijenta

Evo primjera kako klijent šalje i prima poruke s WebSocket poslužitelja:

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

U isječku koda:

  • async with websockets.connect("ws://localhost:8765") as websocket:: Ovo je način na koji se klijent povezuje s WebSocket poslužiteljem. Klijent uspostavlja vezu na localhost adresu i port 8765.

  • await websocket.send("Hello, WebSocket!"): Klijent šalje poruku  poslužitelju. Hello, WebSocket!

  • response = await websocket.recv(): Klijent čeka da primi odgovor od poslužitelja putem WebSocket veze.

Zaključak

Slijedeći korake i razumijevajući svaki dio primjera, uspješno ste naučili kako slati i primati poruke putem WebSocket u Python. To otvara mogućnosti za kreiranje aplikacija u stvarnom vremenu i kontinuiranu razmjenu podataka između poslužitelja i klijenata.