WebSocket Komunikacja umożliwia wysyłanie i odbieranie wiadomości w czasie rzeczywistym między serwerem a klientami. Oto szczegółowy przewodnik, jak to osiągnąć podczas Python korzystania z websockets
biblioteki.
Krok 1: Zainstaluj WebSocket bibliotekę
Najpierw zainstaluj websockets
bibliotekę, uruchamiając następujące polecenie w terminal:
pip install websockets
Krok 2: Wysyłanie i odbieranie wiadomości na serwerze
Poniżej znajduje się przykład wysyłania i odbierania wiadomości na WebSocket serwerze:
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()
We fragmencie kodu:
-
async def handle_connection(websocket, path):
: Ta funkcja obsługuje WebSocket połączenia. Gdy klient wysyła wiadomość, ta funkcja nasłuchuje i odsyła odpowiedź. -
async for message in websocket:
: Ta pętla nasłuchuje komunikatów od klienta przez WebSocket połączenie. -
await websocket.send(f"Server received: {message}")
: Ta funkcja wysyła odpowiedź z serwera z powrotem do klienta za pośrednictwem WebSocket połączenia.
Krok 3: Wysyłanie i odbieranie wiadomości od Klienta
Oto przykład tego, jak klient wysyła i odbiera wiadomości z WebSocket serwera:
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())
We fragmencie kodu:
-
async with websockets.connect("ws://localhost:8765") as websocket:
: W ten sposób klient łączy się z WebSocket serwerem. Klient nawiązuje połączenie zlocalhost
adresem i portem8765
. -
await websocket.send("Hello, WebSocket!")
: Klient wysyła wiadomość do serwera.Hello, WebSocket!
-
response = await websocket.recv()
: Klient czeka na odpowiedź z serwera za pośrednictwem WebSocket połączenia.
Wniosek
Wykonując kroki i rozumiejąc każdą część przykładu, z powodzeniem nauczyłeś się, jak wysyłać i odbierać wiadomości za pośrednictwem WebSocket w Python. Otwiera to możliwości tworzenia aplikacji czasu rzeczywistego i ciągłej wymiany danych pomiędzy serwerem a klientami.