Cómo implementar un websocket en Python

Cómo implementar un websocket en Python

Websocket es un protocolo de capa de aplicación que permite la comunicación bidireccional entre un cliente y un servidor. El protocolo de WebSocket funciona primero creando un apretón de manos y luego un encuadre de mensaje implementado a través de TCP en lugar del HTTP básico.

Redes web y otras tecnologías similares, como SSE (eventos de servidor) y WEBRTC, son útiles en las aplicaciones donde el servidor debe mantener una conexión abierta a los clientes conectados. Un excelente ejemplo de websockets utilizados en aplicaciones es una aplicación de chat, juegos multijugador en línea y herramientas en tiempo real como análisis y herramientas de colaboración.

Redes web nos proporciona una conexión bidireccional y duplex entre el servidor y los clientes conectados en la web. Eso significa que tanto el servidor como el cliente pueden presionar los datos una vez que haya una conexión establecida.

En este tutorial, no me sumergiré profundamente en cómo Redes web trabajar. En su lugar, le mostraré cómo puede usar Python para implementar una aplicación simple usando WebSocket.

Si desea obtener más información sobre HTTP, WebSocket y SSES, Echa un vistazo a los otros tutoriales en este sitio que explican sus diferencias.

NOTA: Antes de comenzar, suponemos que está familiarizado con los conceptos básicos de redes como las solicitudes HTTP y HTTP. Para implementar los conceptos en este tutorial con cierto grado de facilidad, debe tener conocimiento básico de programación de Python y JavaScript.

Paso 1: Configuración del entorno

Comencemos a implementar un servidor WebSocket simple para usar el navegador como cliente para conectarse al servidor.

Es bueno tener en cuenta que el propósito de esta implementación no es crear una aplicación masiva, sino darle una comprensión básica de cómo puede usar Python y JavaScript para crear aplicaciones WebSocket.

Para esto, necesitaremos tener Python instalado, preferiblemente Python 3.6+.

También usaremos el Websocket paquete.

https: // websockets.readthedocs.io/en/stable/índice.html

Una vez que haya instalado Python, use PIP para instalar el paquete WebSocket usando el comando a continuación:

PIP Instale WebSockets

Una vez que tengas el Redes web Paquete instalado, podemos comenzar a crear el servidor y un cliente para conectarse.

Paso 2: Creación del servidor

Comience por crear un directorio donde vamos a servir a la aplicación Websocket.

Dentro del directorio, cree un archivo y llámelo servidor.py

Dentro del servidor.archivo py, agregue las siguientes líneas de código que implementan un servidor simple en / url.

importar asyncio
importar websockets
# Crear controlador para cada conexión
Async Def Handler (WebSocket, ruta):
Data = espera WebSocket.Recv ()
Respuesta = f "datos recibidos como: data!"
espera websocket.enviar respuesta)
start_server = WebSockets.servir (manejador, "localhost", 8000)
asincio.get_event_loop ().run_until_complete (start_server)
asincio.get_event_loop ().run_forever ()

Dentro del archivo del servidor, importamos los paquetes requeridos en este caso, asincio, y Redes web.

A continuación, creamos un controlador que toma los argumentos Websocket y camino. El Websocket Representa la URL del servidor (localhost: 8000). El camino es el URI para el controlador en nuestro caso, el URI es /.

Luego procedemos a esperar la conexión entrante y el mensaje. Con los datos recibidos, implementamos una acción. En nuestro caso, una respuesta simple con el contenido de los datos recibidos.

Paso 3: Crear un cliente

Intentemos ahora implementar un cliente simple para conectarse al servidor. Usaremos la consola del navegador como cliente para preservar la simplicidad del tutorial.

Crear un archivo y llamarlo cliente.html. Dentro del archivo, agregue el siguiente código:







Cliente de WebSocker





Guarde el archivo y ábralo en el navegador.

Para probar si la conexión está funcionando, haga clic en el botón y verifique la consola para la respuesta del servidor.

Una vez que hace clic en el botón, se envía un mensaje al servidor. El servidor luego responde con el contenido del mensaje, lo que indica que la conexión está establecida.

Conclusión

Para este tutorial, vimos cómo usar el Websockets de Python paquete para implementar un simple Websocket conexión.