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

LexikJWTAuthenticationBundle – Symfony2 REST API Authentification

Lexik vous présente aujourd’hui LexikJWTAuthenticationBundle, destiné à vous aider à mettre en place rapidement un système d’authentification entre votre API REST Symfony2 et d’éventuels clients Javascript (AngularJS, Ember.js, Backbone.js) ou mobiles.

Contexte

Les bonnes ressources concernant la mise en place d’une API REST Symfony2 ne manquent pas :

Mais peu d’informations claires sont disponibles sur l’authentification auprès d’une telle API. Et les stratégies dans ce domaine ne manquant pas, il va falloir faire un choix… Et chez Lexik on a  choisit le petit standard qui monte : le Json Web Token (JWT).