3. Interactions en « temps réel » : Pourquoi
faire ?
• Tableaux de bord affichant une information « Live » (ex : prix d’une
action
• Applications collaboratives (ex: Réponse à un « chat »)
• Suivi de l’avancement d’une tâche
• Application métier répondant à des mises à jour multiples et
simultanées
• Evènement dans un jeu
• Remontée d’alerte et push sur les mobiles
• …
4.
5.
6. Interactions « temps réel » pour le Web
• Limites du protocole HTTP
• « Half duplex » et sans état
• De multiples contournements liés aux usages du Web 2.0
• WebSockets :
• Evolution du protocole (IETF) et de l’API (W2C)
• Connexion persistante et bidirectionnelle
• Pré-requis
• Un serveur http piloté par évènement
• Etre supporté par le browser et par le serveur
• Implémentation via de nombreux frameworks :
• Socket.io
• SignalR
• ...
• De multiples possibilités d’hébergement sur Azure : Azure Web Site, Cloud Service PaaS,
Cloud Service IaaS, Azure Mobile Service
7. Node.js + Socket.io
• node.js est un framework Open Source événementiel permettant de
développer des applications réseau en JavaScript
• Tous les requêtes sont asynchrones et s’exécutent sur un seul thread
• Utilise le moteur JavaScript V8 de Google et un wrapper C++ optimisé pour gérer les
I/O
• Environnement extrêmement modulaire:
• « socket.io » :
• Connexions WebSockets et long polling
• Affinité de session requise en multi-nodes sur les scénarios long polling
• « IISNode » : node.js hébergé dans IIS
• Gestion des processus
• Scalabilité sur des serveurs multi-cœurs
• …
8. Browser Web
Moteur JavaScript
Code client javaScript
Framework Client :
AngularJS,
Knockout,
…
Microsoft Azure
VM, WebRole, Site Web,
Mobile Service
HTML/JSON
WebSockets
node.js
Moteur JavaScript V8
Code serveur javaScript
Modules node.js :
Express,
Socket.io,
…
9.
10.
11. SignalR
• SignalR 2.x est un framework Open Source
• Communication asynchrone d'un client (javaScript + jQuery) avec un serveur .Net
• Push d’événements serveur vers le navigateur client
• Connexion WebSockets et long polling
• Deux modèles de programmation
• Persistent Connection
• API de bas niveau : Sémantique de connexion, reconnexion & déconnection
• Broadcast vers tous les clients, groupes or des clients ciblés
• Hubs
• Fondé sur l’API PersistentConnection
• RPC client-serveur *ET* server-client
• Génération automatique du proxy client (JavaScript)
• Support du Cross-Origin Resource Sharing (CORS)
• De multiples possibilités d’hébergement sur Windows :
• ASP.NET, OWIN, Self-Host,…
• Mécanismes natif de scaleout via différents backplanes
12.
13. Interactions « temps réel » Mobile
• Service Azure Notification Hubs fondé sur
Windows Notifications Service
• Windows / Windows Phone
• iOS, Androïd…
• Centralisation des notifications push pour
toutes vos applications mobiles
• SDK ultra simple pour envoyer des
notifications
Microsoft Azure
APNs WNS
App back-end
iOS app Windows 8.x / Phone
app
Android app
MPNS
GCM
Notification Hub