Dev Day 2013: Push Notification + SignalR

2,096 views

Published on

Já pensou como um sistema de Push Notification de um celular funciona? Como o facebook e twitter entregam novas mensagem no seu browser sem ação do usuário? Além disso qual é a aplicabilidades desta técnica em aplicações corporativas? O objetivo desta palestra é discutir sobre o modelo de Push Notification em aplicações corporativas, para tal, utilizaremos o SignalR como framework de comunicação em tempo real explorando técnicas como Polling, Long Polling, Forever Frame e WebSockets. Se quer saber mais sobre Push Notification, comunicação em tempo real para ambientes corporativos você veio ao local correto!

Published in: Technology
  • Be the first to comment

Dev Day 2013: Push Notification + SignalR

  1. 1. Bio Walter Dias SI & EAS Localiza Rent a Car Video Game Whore G33K Level 26 Arquiteto Software Tecnologias Microsoft walterbh@gmail.com @walterbh bit.ly/1721Szi
  2. 2. Agenda Conceitos Push Technology Cenários Técnicas SignalR Demo Alternativas Conclusão Q&A
  3. 3. Conhecimento é...
  4. 4. ...poder
  5. 5. Informação
  6. 6. Dados em tempo Real
  7. 7. Computação em tempo real
  8. 8. Computação em tempo real A B C • Agressivo • Baixo • Consistente
  9. 9. Push Technology
  10. 10. Push Technology
  11. 11. Cenários
  12. 12. Cenários
  13. 13. Cenários
  14. 14. HTTP Normal Cliente Servidor
  15. 15. Polling Tempo Servidor Cliente
  16. 16. Polling setInterval(function () { $.ajax({ type: "POST", url: "URL", data: "{}", contentType: "application/json; charset=utf-8", dataType: "json", success: function (msg) { // do something... } }); }, 10000);
  17. 17. Long Polling Tempo Servidor Cliente
  18. 18. Long Polling function longPolling() { $.ajax({ type: "POST", url: "URL", data: "{}", contentType: "application/json; charset=utf-8", dataType: "json", success: function (msg) { // do something nice... }, error: function (msg) { // do something evil... }, complete: function () { longPolling(); // call again } }); }
  19. 19. Server Sent Events Tempo Servidor Cliente
  20. 20. Server Sent Events - JS if (!window.EventSource) { alert("Seu browser é o M$IE"); } var source = new EventSource('stream.asp'); source.addEventListener('message', function (e) { //do something }, false); source.addEventListener('open', function (e) { // connection was opened. }, false); source.addEventListener('error', function (e) { if (e.readyState == EventSource.CLOSED) { // connection was closed. } }, false);
  21. 21. Server Sent Events - Server Content-Type: text/event-stream data: data: data: data: {n "msg": "hello world",n "id": 12345n }nn data, event, id, retry
  22. 22. Forever Frame Tempo Servidor Cliente
  23. 23. Forever Frame <iframe src="URL" style="visibility: hidden;"> <script>doSomething();</script> window.parent
  24. 24. Web Sockets Tempo Servidor Cliente
  25. 25. Web Sockets function doSomething() { websocket = new WebSocket(URL); websocket.onopen = function (evt) { }; websocket.onclose = function (evt) { }; websocket.onmessage = function (evt) { }; websocket.onerror = function (evt) { }; websocket.send(message); websocket.close(); }
  26. 26. SignalR
  27. 27. Alternativas

×