Notifications via websocket avec Symfony2 et Node.js

La réactivité des applications web est un critère essentiel de l’expérience utilisateur. Fini le temps des requêtes AJAX exécutées toutes les X secondes, ou pire des rechargements de page pour actualiser le contenu ! Les notifications en direct se font aujourd’hui très simplement grâce aux websockets.

Les solutions serveur ne manquent pas, de l’incontournable socket.io (node.js) au plus récent ratchet (php). Et coté client, HTML5 fournit une API WebSocket… encore peu répandue malheureusement !

La stack retenue

Pour cet exemple, nous allons utiliser la version node.js de Faye server, qui a l’avantage d’être très simple à mettre en place et de d’intégrer directement un client JavaScript.

Stack Symfony2 Faye

  • Une application backend Symfony2
  • Une application client HTML / JS
  • Une passerelle Faye server (node.js) pour l’envoi de notifications au client

Notifications asynchrones avec node.js et Postgresql

La qualité des applications dites «web 2.0» est en constante évolution, et l’on retrouve régulièrement des interfaces qui nous font facilement oublier que l’on est toujours sur un browser.
Un tel site qui fait beaucoup parler de lui est, par exemple, Trello: une plateforme de gestion de tâches proposant une utilisation étonament fluide, avec son système de notifications asynchrones qui n’est pas sans rappeler Growl.