Articulo de referencia

Interfaz de puerta de enlace de servidor asíncrono

{{cite web|url=https://asgi.readthedocs.io/en/latest/specs/main.html#version-history |title=Version History}} "},"header4":{"wt":""},"label4":{"wt":"Website"},"data4":{"wt":"{{U...

La Interfaz de Puerta de Enlace de Servidor Asíncrono ( ASGI ) es una convención de llamada que utilizan los servidores web para reenviar solicitudes a marcos de trabajo y aplicaciones de Python con capacidad asíncrona . Se diseñó como sucesora de la Interfaz de Puerta de Enlace de Servidor Web (WSGI).

Mientras que WSGI proporcionaba un estándar para aplicaciones Python síncronas, ASGI proporciona uno tanto para aplicaciones asíncronas como síncronas, con una implementación compatible con versiones anteriores de WSGI y múltiples servidores y marcos de aplicación.

Ejemplo

Una aplicación " Hola, mundo! " compatible con ASGI escrita en Python :

async def aplicación ( ámbito , recibir , enviar ):evento = esperar a recibir ()...esperar a enviar ({ "tipo" : "websocket.send" , ... })

Dónde:

  • La línea 1 define una función asíncrona llamada application, que toma tres parámetros (a diferencia de WSGI que solo toma dos), scope, receivey send.
    • scopees un archivo dictque contiene detalles sobre la conexión actual, como el protocolo, los encabezados, etc.
    • receivey sendson funciones asíncronas que permiten a la aplicación recibir y enviar mensajes desde/hacia el cliente.
  • La línea 2 recibe un evento entrante, por ejemplo, una solicitud HTTP o un mensaje WebSocket. awaitSe utiliza la palabra clave porque la operación es asíncrona.
  • La línea 4 envía una respuesta al cliente de forma asíncrona. En este caso, se trata de una comunicación WebSocket.

Compatibilidad con la interfaz de puerta de enlace del servidor web (WSGI)

ASGI también está diseñado para ser un superconjunto de WSGI , y existe un método definido para la traducción entre ambos, lo que permite ejecutar aplicaciones WSGI dentro de servidores ASGI mediante un envoltorio de traducción (proporcionado en la biblioteca asgiref). Se puede utilizar un grupo de subprocesos para ejecutar las aplicaciones WSGI síncronas fuera del bucle de eventos asíncronos.

Véase también

Referencias

  1. "Historial de versiones" .
  2. "Copyright" . GitHub . Consultado el 14 de septiembre de 2022 .
  • Documentación de la interfaz de puerta de enlace de servidor asíncrono
  • Especificación de la interfaz de puerta de enlace de servidor asíncrono