Comunicação em Tempo Real com ASP.Net SignalR

3.535 visualizações

Publicada em

Comunicação em Tempo Real com ASP.Net SignalR

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
3.535
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2.503
Ações
Compartilhamentos
0
Downloads
0
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Comunicação em Tempo Real com ASP.Net SignalR

  1. 1. Visual Studio Summit 2013Eduardo Pires – Arquiteto de SistemasMSP - MCSD - MCTS - PSD - ITIL V3www.eduardopires.net.br@EduardoPiresBR
  2. 2. Visual Studio Summit 2013Comunicação em tempo realNossos usuários querem acesso a última informação AGORA!• Atualizações de redes sociais• Cotação da bolsa de valores• Placares – Game Score• Jogos interativos• Notificações (E-mail, Agenda, etc)• Apps colaborativas• Atualizações de e-Commerce• Notícias ao vivo• Leilões• Jogos interativos• Transações financeiras• E claro... CHAT
  3. 3. Visual Studio Summit 2013Técnicas de soluções atuais:• Polling• Long Polling• Forever Frame• Server Sent Events• WebSockets
  4. 4. Visual Studio Summit 2013Polling• Utiliza requisições Ajax (XMLHttpRequest)• Conexões periódicas com o server verificando se há algumaatualizaçãoPrós Contras--- Atraso nas atualizaçõesSobrecarrega o server commilhares de requests
  5. 5. Visual Studio Summit 2013Polling
  6. 6. Visual Studio Summit 2013Long Polling• Semelhante ao Polling, requisições Ajax (XMLHttpRequest)• Mantem a conexão aberta até receber uma notificação doserverPrós ContrasSem atraso nas respostas Múltiplos requestsBaixa carga no servidor Existem técnicas mais rápidasSuportado por vários Browsers
  7. 7. Visual Studio Summit 2013Long Polling
  8. 8. Visual Studio Summit 2013Forever Frame• Utiliza de forma inteligente a tag HTML <iframe> de forma acriar uma conexão permanentemente abertaPrós ContrasSuportado por vários Browsers Problemas com peculiaridadesde cada Browser, tornando-semuito difícil de implementar.Muito difícil de tratar os erros
  9. 9. Visual Studio Summit 2013Forever Frame
  10. 10. Visual Studio Summit 2013Server-Sent Events• HTML5 – Funciona através de HTTP• EventSource JavaScript API• Content-type: text/event-streamPrós ContrasConexão persistente Não é suportado no IE Não necessita um protocoloespecial implementado noservidorTrabalha em apenas umadireção. Server >> Client
  11. 11. Visual Studio Summit 2013Server-Sent Events
  12. 12. Visual Studio Summit 2013WebSockets• HTML5 – Funciona via TCP• Será o fim do HTTP ?Prós ContrasConexão persistente nas duasdireções. Server >> Client eClient >> ServerRequer o protocolo WebSocket IE 10 e demaisbrowsers (versão atualizada)É a técnica mais rápidaatualmenteRequer o protocolo WebSocket no Server (IIS8)
  13. 13. Visual Studio Summit 2013WebSockets
  14. 14. Visual Studio Summit 2013E se eu quiser implementar TODAS as técnicas?Terei muito trabalho?
  15. 15. Visual Studio Summit 2013ASP.Net SignalR• Solução completa de comunicação emtempo real• Comunicação de forma assíncrona• Membro oficial do ASP.Net• Open-Source (GitHub)• Conexão persistente Server / Client• Forma de programação unificada• Dois níveis diferentes de abstração de uma conexão. Escolheautomaticamente o melhor tipo de transporte conforme o cenário.
  16. 16. Visual Studio Summit 2013Arquitetura
  17. 17. Visual Studio Summit 2013Hubs• Implementação de alto nívelconstruído sobre a APIPersistentConnection• Modelo RPC (RemoteProcedure Call)• Modelo mais indicado parautilização do SignalR
  18. 18. Visual Studio Summit 2013Persistent Connection• A API de conexão (classe PersistentConnection) dá ao desenvolvedoracesso direto a comunicação de baixo nível que o SignalR expõe,similar a forma de trabalhar com Sockets.• As mensagens não possuem formato, são baseadas em stringssimples que necessitam ser interpretadas em ambos os lados (client,server).• A escolha do transporte fica a cargo do desenvolvedor
  19. 19. Visual Studio Summit 2013Indicações• A maioria dos aplicativos deve usar o modelo Hubs.• PersistentConnections podem ser utilizados nas seguintescircunstâncias:O formato da mensagem enviada necessita de ser controlado.O desenvolvedor prefere trabalhar com um modelo de envio demensagens ao invés de um modelo de invocação remota.Um aplicativo existente que usa um modelo de mensagem está sendoportado para usar SignalR.
  20. 20. Visual Studio Summit 2013ASP.Net SignalR ComponentsjQuery .Net WP7 iOS Silverlight WinRTAndroidMonoASP.NetIIS8Self /OwinAzureServiceBusClientsHosts
  21. 21. Visual Studio Summit 2013Como começar?• Pré-requisitos, Visual Studio 2010 SP1 ou 2012• O Visual Studio 2012 – Update 2 já possui suporte ao ASP.Net SignalR• ASP.Net SignalR está disponível via NuGet
  22. 22. Visual Studio Summit 2013Demo! Demo! Demo!• Chat! (Clássico)• Jogo da velha em tempo real.
  23. 23. Visual Studio Summit 2013Muito Obrigado!Dúvidas?Eduardo Pires@EduardoPiresBRwww.eduardopires.net.br

×