Zbudowanie WebSocket serwera w Python pozwala na ustanowienie ciągłego i dwukierunkowego kanału komunikacji między serwerem a klientami. Poniżej znajduje się szczegółowy przewodnik wyjaśniający każdy komponent w celu zbudowania podstawowego WebSocket serwera przy użyciu websockets
biblioteki.
Krok 1: Zainstaluj WebSocket bibliotekę
Aby rozpocząć, musisz zainstalować websockets
bibliotekę, wykonując następujące polecenie w terminal:
pip install websockets
Krok 2: Tworzenie WebSocket serwera
Oto przykład, jak zbudować WebSocket serwer w Python:
import asyncio
import websockets
# WebSocket connection handling function
async def handle_connection(websocket, path):
async for message in websocket:
# Process the data and send a response
response = f"Server received: {message}"
await websocket.send(response)
# 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()
We fragmencie kodu:
-
async def handle_connection(websocket, path):
: Ta funkcja obsługuje WebSocket połączenia. Za każdym razem, gdy klient się łączy, ta funkcja jest wywoływana w celu zarządzania komunikacją. -
async for message in websocket:
: Ta pętla wykonuje iterację w celu nasłuchiwania komunikatów od klienta za pośrednictwem WebSocket połączenia. -
await websocket.send(response)
: Ta funkcja wysyła odpowiedź z serwera z powrotem do klienta za pośrednictwem WebSocket połączenia. -
websockets.serve(handle_connection, "localhost", 8765)
: Ta funkcja tworzy WebSocket serwer, który nasłuchuje połączeń na podanymlocalhost
adresie i porcie8765
.
Krok 3: Testowanie serwera
Po wdrożeniu kodu serwera będzie on nasłuchiwał połączeń od klientów na porcie 8765. Możesz przetestować serwer, łącząc się z nim za pomocą WebSocket kodu klienta lub narzędzi do testowania online.
Wniosek
Wykonując te kroki, pomyślnie zbudowałeś prosty WebSocket serwer w Python. Ten serwer zapewnia podstawę do tworzenia aplikacji czasu rzeczywistego i interakcji między serwerem a klientami za pomocą WebSocket protokołu.