Envío y recepción de mensajes a través WebSocket de Python

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 la localhost dirección y el puerto 8765.

  • 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.