El servidor Push de Mozilla ahora soporta temas

29 enero, 2017 1:40 por

Esta es una traducción del artículo original publicado en el blog de Mozilla Hacks.

En Firefox 44, Mozilla agregó la funcionalidad de Web Push al navegador. Esto le da a los sitios web la posibilidad de notificar a los usuarios cuando algo importante necesita ser comunicado. Por ejemplo, puedes tener una aplicación web que quiere notificar a los usuarios cuando reciben una llamada WebRTC, o cuando una nueva discusión es iniciada en una conversión de grupo. O con una servicio de mensaje, puedes querer notificar a los usuarios cuando tienen nuevos mensajes disponibles.

Dan Callahan ha cubierto los detalles de agregar WebPush a tus aplicaciones web en un artículo en el blog hace poco. También puedes obtener más documentación sobre la API Push de la MDN o revisar en la Guía de Service Workers por ejemplos de cómo usar Web Push así como otros escenarios para Service Workers.

Mientras que Web Push tiene muchos beneficios, también viene con algunos inconvenientes. Por ejemplo, si notificas a un usuario no conectado de sus mensajes sin leer, cuando estos mensajes lleguen al navegador después, el usuario será inundado con muchas notificaciones al mismo tiempo.

Notificaciones sin tema

Esto puede ser mitigado un poco en ciertos sistemas operativos, pero ahora tenemos una mejor manera disponible. El Servicio Push de Mozilla ahora ofrece la capacidad de proveer temas para los mensajes en las notificaciones. Esto significa que cualquier agente de usuario suscrito a la aplicación sólo se le proporcionará el último mensaje en un tema cuando este retorne de un estado sin conexión. El servicio Push reemplaza todo los mensajes con el mismo tema y sólo muestra el más reciente. En el ejemplo mostrado anteriormente, todos los mensajes no leídos están agrupados dentro de un tema, y cuando un usuario fuera de línea abre su navegador, estas notificaciones tienen un sólo mensaje del tema, que es el último recibido.

Notificaciones por tema

Como éste es un cambio a la especificación WebPush, para que esto funcione será necesario modificar el código del servidor que realmente envía los mensajes al Servicio Push. Esencialmente, debes agregar una cabecera llamada “Topic” al mensaje a enviar. Revisa este ejemplo de prueba para temas en github para que tengas una simple referencia. Puedes ver cómo la cabecera es agregada en el archivo pusher/main.py con el siguiente código:

pywebpush.WebPusher(sub_info).send(
    args.msg,
    headers={"topic": topic},
    ttl=args.ttl,
)

Si estás usando la librería de web-push para NodeJS de Marco Castelluccio, puedes agregar la cabecera de la siguiente manera:

webPush.sendNotification(req.body.endpoint, {
         TTL: req.body.ttl,
         payload: req.body.payload,
         userPublicKey: req.body.key,
         userAuth: req.body.authSecret,
         headers: {
             topic: topic
         }
       })
The following two tabs change content below.

AngelFQC

Web Developer at BeezNest Latino
Ingeniero de Sistemas y Computación. Desarrollador PHP. Mozilla Peru. Chamilo LMS Developer.

Compartir artículo:

Join the discussion at foro.mozilla-hispano.org

  • ¡Participa!

    Firefox Friends »
    Agrega botones de Firefox en tu sitio web y comparte tu amor por Mozilla Firefox.
    Armada alucinante »
    Ayuda a otros usuarios en Twitter.
    Colabora con la comunidad »
    En Mozilla lo importante son las personas. Descubre cómo puedes colaborar.

    Boletín Firefox

    Suscríbete al boletín de novedades de Firefox.

  • Descargas

    Descarga los programas de Mozilla.

    Lo más visto

    cc-by-sa