Your SlideShare is downloading. ×
0
Websockets par Martin Moizard
Websockets par Martin Moizard
Websockets par Martin Moizard
Websockets par Martin Moizard
Websockets par Martin Moizard
Websockets par Martin Moizard
Websockets par Martin Moizard
Websockets par Martin Moizard
Websockets par Martin Moizard
Websockets par Martin Moizard
Websockets par Martin Moizard
Websockets par Martin Moizard
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Websockets par Martin Moizard

3,439

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
3,439
On Slideshare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Temps réel & WebSockets Martin Moizard vendredi 14 février 14
  • 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. Dans la vie... polling vs webSockets vendredi 14 février 14
  • 4. Dans la vie... polling vs webSockets vendredi 14 février 14
  • 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. 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. WebSocket & iOS SocketRocket • Conforme au protocole • Développé et maintenu par Square • Utilisé en prod vendredi 14 février 14
  • 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. 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. WebSocket & iOS • vendredi 14 février 14 Code & démo
  • 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. MERCI ! @MartinMoizard https://github.com/MartinMoizard/Realtime-samples vendredi 14 février 14

×