Building Real-Time Web Apps with ASP.NET SignalR par John

SignalR est une libraire permettant une communication en temps réel entre un client et un serveur (COMET, HTTP Streaming, WebSockets). C’est une abtraction d’une connexion  temps-réel en HTTP pour .NET

Après une courte introduction la session commence par une démonstration de la création d’un projet ASP.NET SignalR et de la mise en place d’un Hub et d’un client en Javascript.

Quelques exemples de jeux dont ShootR (shootr.signalr.net) qui est un jeu en temps réel où le serveur maintient la boucle de jeu.

SignalR utilise un API très simple à deux niveaux. Le bas niveau s’occupe des connections, déconnections et du broadcast sur tous les clients. Le haut niveau, les Hubs, construits au-dessus de la couche bas niveau s’occupe de la génération automatique de proxy Javascript.

Ensuite une démo de la création d’une connexion persistante avec à la fois les Connection et les Hubs.

Quid des websockets ?

Elles marchent si :

  • Le server est ASP;nET 4.5 sur Windows 2012
  • Le client utilise IE10 ou Chrome, Safari, Firefox
  • Votre proxy de load balancing le supporte
  • Votre NAT le supporte
  • Tout le monde entre le client et le supporte le supporte
  • Vous aimez coder des sockets pures
  • Vous gérez le scaling vous-même

SignalR lui fonctionne partout et essaie les websockets en cas d’échec les connections suivantes sont essayées :

  • Server Sent Event
  • Forever Frame
  • Long Polling

Ensuite on a une petite démonstration montrant comment avec le débuggeur inclus dans IE10, voir les connections entre le client et le serveur.

Il existe des clients SignalR pour :

JS, .NET SL5, Windows Store App, iOS (community), MonoTouch (community)

Dans le futur il y aura :

WP8, MonoTouch, MonoDroid et autres…

S’ensuit une démonstration montrant plusieurs types de clients connectés au même hub.

Quelques informations sur la performance ensuite.

Très grande performance sur une seule machine (100 000 messages par seconde avec une empreinte mémoire faible).

Tout étant asynchrone dans SignalR il fait une bonne utilisation des ressources.

On a aussi la possibilité de faire du scaling grâce à l’intégration d’un bus permettant de faire dialoguer différents nœud (serveurs) entre eux. Ce bus peut tourner dans le service bus azure.

Ensuite ils nous ont présenté la façon qu’ils utilisent pour faire des tests de performance sur SignalR.

Nouvelles fonctionnalités de la version 1.0.0 alpha 1

  • Meilleurs performances
  • Refonte de l’API d’invocation du client
  • Autenthification sur les HUB
  • Modules pour les HUB
  • Keep-alive sur le client

Version finale fin 2012.

Une session bien sympathique permettant de découvrir SignalR et ses capacités.

John

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s