Sändning av realtidsdata med Python WebSocket

WebSocket är en teknik som möjliggör effektiv dataöverföring i realtid mellan en server och klienter genom dubbelriktade anslutningar. Här är en guide om hur du använder WebSocket för att sända realtidsdata från en server till klienter i Python:

Installera WebSocket biblioteket

Använd websockets biblioteket för att implementera WebSocket server och klient. Installera det här biblioteket med pip:

pip install websockets

Bygg WebSocket servern

Servern WebSocket skickar realtidsdata till alla anslutna klienter.

import asyncio  
import websockets  
  
# Function to send real-time data from the server  
async def send_real_time_data(websocket, path):  
    while True:  
        real_time_data = get_real_time_data()  # Get real-time data from a source  
        await websocket.send(real_time_data)  
        await asyncio.sleep(1)  # Send data every second  
  
start_server = websockets.serve(send_real_time_data, "localhost", 8765)  
asyncio.get_event_loop().run_until_complete(start_server)  
asyncio.get_event_loop().run_forever()  

Bygg WebSocket kunden

Klienten WebSocket kommer att lyssna och ta emot realtidsdata från servern.

import asyncio  
import websockets  
  
async def receive_real_time_data():  
    async with websockets.connect("ws://localhost:8765") as websocket:  
        while True:  
            real_time_data = await websocket.recv()  
            print("Received real-time data:", real_time_data)  
  
asyncio.get_event_loop().run_until_complete(receive_real_time_data())  

Kör applikationen

Kör WebSocket serverkoden först, kör sedan WebSocket klientkoden. Du kommer att se realtidsdata som sänds från servern och tas emot kontinuerligt av klienten.

Anpassa och utöka

Härifrån kan du anpassa och utöka din applikation genom att lägga till funktioner som autentisering, datafiltrering, dataformatering och mer.

Slutsats:

Att använda WebSocket för att sända realtidsdata från en server till klienter i Python är ett kraftfullt sätt att bygga realtidskommunikationsapplikationer och uppleva omedelbart uppdaterad data.