Los eventos enviados por el servidor ( SSE ) es una tecnología de inserción del servidor que permite a un cliente recibir actualizaciones automáticas de un servidor a través de una conexión HTTP, y describe cómo los servidores pueden iniciar la transmisión de datos hacia los clientes una vez que se ha establecido una conexión de cliente inicial. Se utilizan comúnmente para enviar actualizaciones de mensajes o flujos de datos continuos a un cliente de navegador y están diseñados para mejorar la transmisión nativa entre navegadores a través de una API de JavaScript llamada EventSource, a través de la cual un cliente solicita una URL particular para recibir un flujo de eventos. La API EventSource de eventos enviados por el servidor está estandarizada como parte de HTML5 [1] por el W3C .
Historia
La propuesta de WHATWG Web Applications 1.0 [2] incluía un mecanismo para enviar contenido al cliente. El 1 de septiembre de 2006, el navegador web Opera implementó esta nueva tecnología experimental en una función llamada "Eventos enviados por el servidor". [3] [4]
Soporte del navegador
Navegador | Soportado | Notas |
---|---|---|
explorador de Internet | No | [5] |
Mozilla Firefox | sí | Comenzando con Firefox 6 [5] |
Google Chrome | sí | Comenzando con Chrome 6 [5] |
Ópera | sí | Comenzando con Opera 11.5 [5] |
Safari | sí | Comenzando con Safari 5.0 [5] |
Microsoft Edge | sí | Comenzando con Edge 79 [5] |
Bibliotecas
.NETO
- Biblioteca Service Stack EventSource con implementaciones de servidor y cliente.
ASP.NET
- SignalR : implementación transparente para ASP.NET.
C
- HaSSEs Demonio SSE asincrónico del lado del servidor escrito en C (utiliza un hilo para todos los clientes conectados).
Erlang
- Controlador de servidor Lasse EventSource para el vaquero de Erlang
- Cliente Shotgun EventSource en Erlang
Ir
- eventsource Biblioteca EventSource para Go.
- Implementación de go-sse SSE para Go.
- decodificador SSE optimizado go-rfc / sse para Go
Java
- jEaSSE : implementación asíncrona del lado del servidor para servlets Java y Vert.x
- Akka HTTP tiene soporte SSE desde la versión 10.0.8
- alpakka Event Source Connector Biblioteca de EventSource para alpakka que admite la reconexión
- Spring WebFlux Server y la implementación de Java del lado del cliente construida sobre flujos reactivos y servidores sin bloqueo
- Jersey tiene una implementación completa de soporte JAX-RS para eventos enviados por el servidor como se define en JSR-370
- El servidor HTTP de Micronaut admite la emisión de eventos enviados por el servidor
- JeSSE : biblioteca del lado del servidor con administración de usuarios / sesiones, transmisión de grupos y autenticación
- Armeria tiene una implementación SSE asíncrona del lado del cliente y del servidor construida sobre Netty y Reactive Streams
- Play Framework Event Source para la emisión de eventos enviados por el servidor
Node.js
- sse-stream - Implementación de Node.js / Browserify (cliente y servidor).
- total.js - marco de aplicación web para Node.js - ejemplo + compatible con WebSockets (RFC 6455)
- eventsource-node - cliente EventSource para Node.js
- Thread-SSE : una biblioteca para Node.js y un navegador web para desarrollar seguridad y SSE de alto rendimiento.
C objetivo
- TRVSEventSource : implementación de EventSource en Objective-C para iOS y macOS usando NSURLSession.
Perl
- Mojolicious : marco web en tiempo real de Perl.
PHP
- Hoa \ Eventsource : implementación del servidor.
Pitón
- Python SSE Client : biblioteca cliente de EventSource para Python usando la biblioteca de solicitudes.
- Cliente de eventos del lado del servidor (SSE) para Python : biblioteca de cliente EventSource para Python que usa solicitudes o la biblioteca urllib3.
- django-eventstream - Eventos enviados por el servidor para Django.
- flask-sse : una simple extensión de Flask impulsada por Redis.
- sse
- Protocolo SSE para Starlette : eventos enviados por el servidor para Starlette y FastApi
- event-source-library - Implementación en python2 con Tornado. Implementaciones de cliente y servidor.
Rubí
- Faye : mensajería pub / sub simple para la web.
Oxido
- Warp Un marco de servidor web súper fácil y componible para velocidades warp.
Scala
- Akka HTTP tiene soporte SSE desde la versión 10.0.8
- alpakka Event Source Connector Biblioteca de EventSource para alpakka que admite la reconexión
Rápido
- EventSource : implementación de EventSource mediante NSURLSession.
Ver también
- Codificación de transferencia fragmentada
- Tecnología de empuje
- Cometa
Referencias
- ^ "Eventos enviados por el servidor" . W3C. 17 de julio de 2013.
- ^ "Especificación de aplicaciones web 1.0" .
- ^ "Transmisión de eventos a navegadores web" .
- ^ Actualizaciones de flujo con eventos enviados por el servidor, Eric Bidelman, sitio web HTML5Rocks.
- ^ a b c d e f ¿ Cuándo puedo usar ... Eventos DOM enviados por el servidor?
enlaces externos
- Eventos enviados por el servidor . Recomendación del W3C.
- Tecnologías HTML5 Server-push, Parte 1 . Introducción a las tecnologías HTML5 Server-push. La parte 1 cubre los eventos ServerSent.
- Uso de eventos enviados por el servidor . Un ejemplo conciso de cómo utilizar eventos enviados por el servidor, en Mozilla Developer Network.
- Referencia de EventSource en MDN
- Django push: uso de eventos enviados por el servidor y WebSocket con Django push de Django: uso de eventos enviados por el servidor y WebSocket con Django.
- Ejemplo de eventos enviados por el servidor en Spring
- Eventos enviados por el servidor frente a WebSockets