WebSocket je tehnologija koja omogućuje učinkovit prijenos podataka u stvarnom vremenu između poslužitelja i klijenata putem dvosmjernih veza. Evo vodiča o tome kako koristiti WebSocket za emitiranje podataka u stvarnom vremenu s poslužitelja na klijente u Pythonu:
Instalirajte WebSocket biblioteku
Koristite websockets
biblioteku za implementaciju WebSocket poslužitelja i klijenta. Instalirajte ovu biblioteku koristeći pip:
pip install websockets
Izgradite WebSocket poslužitelj
Poslužitelj WebSocket će poslati podatke u stvarnom vremenu svim povezanim klijentima.
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()
Izgradite WebSocket klijenta
Klijent WebSocket će slušati i primati podatke u stvarnom vremenu od poslužitelja.
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())
Pokrenite aplikaciju
Prvo pokrenite WebSocket kod poslužitelja, a zatim pokrenite WebSocket kod klijenta. Vidjet ćete kako se podaci u stvarnom vremenu emitiraju s poslužitelja, a klijent ih neprestano prima.
Prilagodite i proširite
Odavde možete prilagoditi i proširiti svoju aplikaciju dodavanjem značajki kao što su provjera autentičnosti, filtriranje podataka, formatiranje podataka i više.
Zaključak:
Korištenje WebSocket za emitiranje podataka u stvarnom vremenu s poslužitelja na klijente u Pythonu moćan je način za izgradnju aplikacija za komunikaciju u stvarnom vremenu i iskustvo trenutačno ažuriranih podataka.