Server Site Event avec Spring

Il faut souvent, dans nos applications, faire des rafraîchissements pour des appels asynchrones. Il existe pour cela plusieurs technologies. La plus simple est le pooling qui consiste à interroger régulièrement le serveur pour connaître l’état d’avancement d’un traitement. Une autre évolution est le long pooling qui consiste à garder ouvert la connexion HTTP mais ces deux techniques sont dispendieuses au niveau du réseau. Une évolution existe avec les webhooks et le Publish-Subscribe. Nous avons ensuite les websockets qui sont bidirectionnelles. Nous avons aussi le Server Site Event, ou SSE en abrégé, qui est une norme HTTP permettant à une application web de gérer un flux d’événements unidirectionnel et de recevoir des mises à jour chaque fois que le serveur émet des données. Cette solution est souvent la mieux adaptée dans un contexte web qui ne requiert pas l’aspect temps réel des websockets. Nous sommes alors en léger différé mais cela est parfois soutenable.

La version Spring 4.2 supportait déjà le SSE, mais, à partir de Spring 5, il existe un moyen plus idiomatique et pratique de le gérer via un flux et un élément ServerSiteEvent grâce aux API réactives de Spring WebFlux. On crée un endpoint de streaming SSE, en suivant les spécifications du W3C qui désignent...

couv_EP4JASP.png

Découvrez 

le livre :

Aussi inclus dans nos :

Précédent
Les tests avec WebFlux
Suivant
Pour aller plus loin