Websockets par Martin Moizard

4,025 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
4,025
On SlideShare
0
From Embeds
0
Number of Embeds
3,336
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Websockets par Martin Moizard

  1. 1. Temps réel & WebSockets Martin Moizard vendredi 14 février 14
  2. 2. Pourquoi du temps réel ? • Avoir des données à jour • Minimiser les actions utilisateurs Pourquoi des WebSockets ? • Performances • Facilité et simplicité vendredi 14 février 14
  3. 3. Dans la vie... polling vs webSockets vendredi 14 février 14
  4. 4. Dans la vie... polling vs webSockets vendredi 14 février 14
  5. 5. Boostrap serveur (1/2) Node.js & SockJS var connectedDevices = []; var echo = sockjs.createServer(options); echo.on('connection', function(conn) { connectedDevices.push(conn); conn.on('data', function(message) { }); conn.on('close', function() { connectedDevices.splice(connectedDevices.indexOf(conn), 1); }); }); vendredi 14 février 14
  6. 6. Boostrap serveur (2/2) Envoi de message app.post('/dispatchMessage', function(req, res) { var messageToDispatch = req.body["message"]; var i = 0; if (messageToDispatch && messageToDispatch.length) { for (; i < connectedDevices.length; i++) { connectedDevices[i].write(messageToDispatch); } } res.type('application/json; charset=utf-8'); res.send('{ "result" : "message dispatched to ' + i + ' devices" }'); }); vendredi 14 février 14
  7. 7. WebSocket & iOS SocketRocket • Conforme au protocole • Développé et maintenu par Square • Utilisé en prod vendredi 14 février 14
  8. 8. WebSocket & iOS Les règles à respecter • Ouvrir la socket tôt et à tout moment : • • • Tentative d’ouverture de la socket dans l’AppDelegate Reachability Dès que la socket fail ou se ferme pour une raison iconnue (delegates) • Eviter les reconnexions dans un intervalle de temps réduit • Mettre en place un retry automatique incrémental borné (à 30s par ex.) vendredi 14 février 14
  9. 9. WebSocket & iOS A la reception du message • Pattern possible : les notifications • • vendredi 14 février 14 L’objet qui gère la WebSocket reçoit le message et envoie une notification avec le message attaché Les controlleurs/vues intéressés s’abonnent à la notification et gèrent la réception de la notification et le traitement du message.
  10. 10. WebSocket & iOS • vendredi 14 février 14 Code & démo
  11. 11. WebSocket & iOS Les limites • Attention à la configuration de certains opérateurs téléphoniques • Protocole bloqué (cas de SFR) • Workaround : SSL vendredi 14 février 14
  12. 12. MERCI ! @MartinMoizard https://github.com/MartinMoizard/Realtime-samples vendredi 14 février 14

×