WebSocket La comunicación le permite enviar y recibir mensajes en tiempo real entre un servidor y clientes. Aquí hay una guía detallada sobre cómo lograr esto usando Python la websockets
biblioteca.
Paso 1: instalar la WebSocket biblioteca
Primero, instale la websockets
biblioteca ejecutando el siguiente comando en terminal:
pip install websockets
Paso 2: Envío y recepción de mensajes en el servidor
A continuación se muestra un ejemplo de cómo enviar y recibir mensajes en un WebSocket servidor:
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()
En el fragmento de código:
-
async def handle_connection(websocket, path):
: Esta función maneja WebSocket las conexiones. Cuando un cliente envía un mensaje, esta función escucha y devuelve una respuesta. -
async for message in websocket:
: este bucle escucha los mensajes del cliente a través de la WebSocket conexión. -
await websocket.send(f"Server received: {message}")
: esta función envía una respuesta del servidor al cliente a través de la WebSocket conexión.
Paso 3: Envío y recepción de mensajes del cliente
Aquí hay un ejemplo de cómo el cliente envía y recibe mensajes del WebSocket servidor:
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())
En el fragmento de código:
-
async with websockets.connect("ws://localhost:8765") as websocket:
: Así es como el cliente se conecta al WebSocket servidor. El cliente establece una conexión con lalocalhost
dirección y el puerto8765
. -
await websocket.send("Hello, WebSocket!")
: El cliente envía el mensaje al servidor.Hello, WebSocket!
-
response = await websocket.recv()
: El cliente espera recibir una respuesta del servidor a través de la WebSocket conexión.
Conclusión
Al seguir los pasos y comprender cada parte del ejemplo, ha aprendido con éxito cómo enviar y recibir mensajes a través WebSocket de Python. Esto abre posibilidades para la creación de aplicaciones en tiempo real y el intercambio continuo de datos entre el servidor y los clientes.