Los últimos tutoriales de desarrollo web

Eventos enviados por el servidor de HTML5


Eventos enviados por el servidor permiten que una página Web para obtener actualizaciones de un servidor.


Eventos enviados por el servidor de mensajería - One Way

Un evento enviado por el servidor es cuando una página web se pone automáticamente las actualizaciones desde un servidor.

Esto también era posible antes, pero la página web tendría que preguntar si hay actualizaciones disponibles. Con eventos enviados por el servidor, los cambios vienen de forma automática.

Ejemplos: Facebook/Twitter actualizaciones, actualizaciones de precios de acciones, feeds de noticias, resultados deportivos, etc.


Soporte del navegador

Los números de la tabla especifican la primera versión del navegador que es totalmente compatible con los eventos enviados por el servidor.

API
SSE 6.0 No soportado 6.0 5.0 11.5

Recibir notificaciones de eventos enviados por el servidor

El EventSource objeto se utiliza para recibir notificaciones de eventos enviados por el servidor:

Ejemplo

var source = new EventSource("demo_sse.php");
source.onmessage = function(event) {
    document.getElementById("result").innerHTML += event.data + "<br>";
};
Inténtalo tú mismo "

Ejemplo explicó:

  • Crear un nuevo EventSource objeto y especificar la URL de la página que envía las actualizaciones (in this example "demo_sse.php")
  • Cada vez que se recibe una actualización, el onmessage ocurre un evento
  • Cuando un onmessage se produce el evento, poner los datos recibidos en el elemento con id="result"

Compruebe enviados por el servidor acontecimientos de la ayuda

En el tryit ejemplo anterior había algunas líneas adicionales de código para comprobar el apoyo del navegador para eventos enviados por el servidor:

if(typeof(EventSource) !== "undefined") {
    // Yes! Server-sent events support!
    // Some code.....
} else {
    // Sorry! No server-sent events support..
}

Del lado del servidor Ejemplo de código

Para el ejemplo anterior funcione, se necesita un servidor capaz de enviar actualizaciones de datos (como PHP o ASP).

La sintaxis de flujo de eventos del lado del servidor es simple. Ajuste el "Content-Type" cabecera a "text/event-stream" . Ahora puede comenzar a enviar flujos de eventos.

Código en PHP (demo_sse.php) :

<?php
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');

$time = date('r');
echo "data: The server time is: {$time}\n\n";
flush();
?>

Código en ASP (VB) (demo_sse.asp) :

<%
Response.ContentType = "text/event-stream"
Response.Expires = -1
Response.Write("data: The server time is: " & now())
Response.Flush()
%>

Código explicó:

  • Ajuste el "Content-Type" cabecera a "text/event-stream"
  • Especifica que la página no se debe almacenar en caché
  • Salida de los datos que desea enviar ( Always start with "data: ")
  • Vaciar los datos de salida de nuevo a la página Web

El objeto EventSource

En los ejemplos anteriores se utilizó el evento onmessage para obtener mensajes. Pero otros eventos también están disponibles:

Eventos Descripción
onopen Cuando se abre una conexión con el servidor
onmessage Cuando se recibe un mensaje
onerror Cuando se produce un error