SignalR

Dans le cadre du projet Deal@Elle chez Lagardère (outil de suivi de ventes des espaces publicitaires), nous avons utilisé SignalR, une bibliothèque .NET destinée à la création de fonctionnalités temps-réel sur des applications. 

Le scénario typique d’utilisation de SignalR est de notifier tous les utilisateurs connectés en temps-réel. Dans le cas de Deal@Elle, il s’agit de signaler la mise à jour des espaces publicitaires.

 

L'approche traditionnelle de la communication client-serveur est un client qui requête le serveur et attend son callback.

Avec SignalR et toutes les technologies temps-réel, la tendance n'est plus au "pulling", mais au "pushing" : le client est en attente permanente de notifications et n'a plus à demander de s'actualiser. La connexion est persistante entre le serveur et chaque client connecté.

Sa mise en place est simple :

1. Côté serveur, on crée une classe "Hub" dans laquelle seront regroupées les actions de mises à jour.

La ligne "Clients.All.CommentCaseAnnonceur_Callback(can)" est dynamique et appellera automatiquement tous les clients abonnés à la notification "CommentCaseAnnonceur_Callback".

 

2. Côté client, on crée le service qui invoquera de cette manière le Hub ci-dessus et s'abonnera à ses notifications.

 

L'une des forces de SignalR est sa flexibilité. En effet, nous avons utilisé SignalR avec comme client une application Windows 8. Mais il existe également une version pour le web avec Javascript ainsi qu'une pour Xamarin pour iOS et Android.

De plus, SignalR adapte son protocole de transport aux capacités du client, ce qui se révèle utile lorsque l'application est destinée à être utilisée avec des clients tels que IE7.

Elle utilise dans l'ordre, si compatible avec le client, ces méthodes de transport : 

- Websockets

- Server Sent Events 

- Forever Frame

- Long Polling Ajax

 

Plus d'infos :

http://www.asp.net/signalr/overview/getting-started/introduction-to-signalr

http://www.bloggedbychris.com/2013/10/31/signalr-overview-websockets-hubs/

https://channel9.msdn.com/Events/Build/2012/3-034

Julien C

Commentaires

yang
Comme Websocket

Ajouter un commentaire