SlideShare una empresa de Scribd logo
1 de 44
ANDRÉ PAULOVICH IVAN PAULOVICH
AspNet Conference Brasil
João Pessoa...
Paraíba – Oxente!
Belo Horizonte...
Minas Gerais – Uai!
www.100loop.com
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
HTTP != “Tempo real”
Contras
Atraso nas atualizações
Sobrecarrega o server com requests
desnecessários
Prós
Sem atraso nas respostas
Múltiplos requests
Contras
Baixa carga no servidor
Existem técnicas mais rápidas
Suportado por vários Browsers
Prós
Suportado por vários Browsers
Contras
Contras Problemas com peculiaridades de
cada Browser.
Muito difícil de tratar os erros
Prós
Conexão persistente.
Não necessidta de um protocolo especial
implementado no servidor.
Contras
Nâo é suportado pelo Internet Explorer.
Trabalha apenas na direção:
Server > Client.
Prós
Conexão persistente nas duas direções.
Melhor performance.
Contras
Requer protocolo WEB SOCKET IE 10 e demais
browsers (versões atualizadas)
Requer protocolo WEB SOCKET no Servidor (IIS8)
E agora...
Para onde seguir?
David Fowler
@davidfowl
Damian Edwards
@damianedwards
Desenvolvida por funcionários da
Microsoft da equipe ASP.NET
Combinando uma biblioteca ASP
.NET no lado do servidor e uma
biblioteca JavaScript do lado
cliente
Transportes
Conexiones persistentes
Long polling
Server-sent
events
Forever
frame
WebSockets
Hubs
Protocolos internet
Abstracción
Aplicação .NET (Server Side)
HUB API
API de Conexão Persistente
Transportes
HTML5 Comet
Web Sockets
Server Sent Events
Forever Frame
Ajax Long Polling
Browser (Client Side)
HUB API
API de Conexão Persistente
Transportes
Browser (Client Side)
HUB API
API de Conexão Persistente
Transportes
Browser (Client Side)
HUB API
API de Conexão Persistente
Transportes
Servidor
Clientes
Servidor (Conexión persistente)Cliente (javascript)
var conn = $.connection(“MyConn”);
conn.start();
conn.send(“hi, all!”);
conn.receive(function(text) {
$(“#log”)
.append(“<li>”+text+”</li>”);
});
class MyConn: PersistentConnection
{
override Task OnConnectedAsync() { … }
override Task OnReceivedAsync(string data)
{
return Connection.Broadcast(data);
}
override Task OnDisconnectAsync() { ... }
}
Servidor
(Hub)
Cliente (javascript)
var chat = $.connection.chatHub;
$.connection.hub.start();
chat.enviar(“hi, all!”);
chat.recibir = function(text) {
$(“#log”)
.append(“<li>”+text+”</li>”);
};
Proxy
class ChatHub: Hub
{
public void enviar(string text)
{
Clients.recibir(text);
}
}
•
JQuery
WinRT
Native
.NET
Android
(via Mono)
WP7 Silverlight
CLIENTES
iOS
HOSTS
1.
2.
PM> Install-Package Microsoft.AspNet.SignalR
PUBLIC CLASS SHAPEHUB : HUB
{
//
// RECEBE MENSAGENS DO CLIENTE
//
PUBLIC VOID MOVESHAPE(INT X, INT Y)
{
//
// ENVIA MENSAGENS PARA O CLIENTE
//
THIS.CLIENTS.OTHERS.UPDATESHAPE(X, Y);
}
}
 Simples definição do Hub
 Implementação dos
métodos
 Uso intensivo de Anonymous
Methods
<SCRIPT TYPE="TEXT/JAVASCRIPT">
$(FUNCTION () {
VAR SHAPE = $("#SHAPE");
$.CONNECTION.HUB.START().DONE(FUNCTION () {
SHAPE.DRAGGABLE({
DRAG: FUNCTION () {
// ENVIA A NOVA POSIÇÃO PARA O SERVIDOR
$.CONNECTION.SHAPEHUB.SERVER.MOVESHAPE(
SHAPE.POSITION().LEFT,
SHAPE.POSITION().TOP);
}
});
});
// RECEBE AS MENSAGENS DO SERVIDOR
$.CONNECTION.SHAPEHUB.CLIENT.UPDATESHAPE = FUNCTION (X, Y) {
SHAPE.ANIMATE({ LEFT: X, TOP: Y }, { QUEUE: FALSE });
}
});
</SCRIPT>
 Implementação dos
métodos no cliente “.client”
 Pode chamar métodos no
servidor “.server”
 Backplane
 Azure Service Bus
 Requisitos Websocket no Azure Websites
 ASP.NET 4.5
 Habilitar no painel
•
HTTP://SHOOTR.SIGNALR.NET/
•
HTTPS://JABBR.NET
• HTTPS://TWITTER.COM/DAMIANEDWARDS
• HTTP://ASP.NET/SIGNALR
• HTTP://GIFTHUB.COM/SIGNALR/SIGNALR
• HTTP://100LOOP.COM
• HTTP://GIFTHUB.COM/IVANPAULOVICH/ASPNETCONF
• HTTP://VIMEO.COM/84677185
• HTTP://EDUARDOPIRES.NET.BR/
• NET PONTO GLAUCO GODOI
• DISCUSSÃO INTERESSANTE SOBRE OS TIPOS DE COMUNICAÇÃO
MANTENHA CONTATO NO WWW.100LOOP.COM
ANDRÉ PAULOVICH PAULOVICH@100LOOP.COM
IVAN PAULOVICH - IVAN@100LOOP.COM

Más contenido relacionado

Similar a SignalR - Conexões persistentes no ASP.NET

Introdução ao ASP .NET Web API
Introdução ao ASP .NET Web APIIntrodução ao ASP .NET Web API
Introdução ao ASP .NET Web APIVinicius Mussak
 
Integração de sistemas legados com Plone
Integração de sistemas legados com PloneIntegração de sistemas legados com Plone
Integração de sistemas legados com PloneFabiano Weimar
 
Descobrindo APIs REST
Descobrindo APIs RESTDescobrindo APIs REST
Descobrindo APIs RESTGuilherme
 
JavaOne LATAM 2016 - Combinando AngularJS com Java EE
JavaOne LATAM 2016 - Combinando AngularJS com Java EEJavaOne LATAM 2016 - Combinando AngularJS com Java EE
JavaOne LATAM 2016 - Combinando AngularJS com Java EERodrigo Cândido da Silva
 
PyData - Consumindo e publicando web APIs com Python
PyData - Consumindo e publicando web APIs com PythonPyData - Consumindo e publicando web APIs com Python
PyData - Consumindo e publicando web APIs com PythonBruno Rocha
 
Workflow Foundation 4.0 - Microsoft DevDays 2009
Workflow Foundation 4.0 - Microsoft DevDays 2009Workflow Foundation 4.0 - Microsoft DevDays 2009
Workflow Foundation 4.0 - Microsoft DevDays 2009Rui Romano
 
WebAPI-Route-Translate-BasicAuth
WebAPI-Route-Translate-BasicAuthWebAPI-Route-Translate-BasicAuth
WebAPI-Route-Translate-BasicAuthJean Lima Lopes
 
Caipira agil automacao front end selenium
Caipira agil automacao front end seleniumCaipira agil automacao front end selenium
Caipira agil automacao front end seleniumQualister
 
Curso PHP - 1a. Aula (2013.2)
Curso PHP - 1a. Aula (2013.2)Curso PHP - 1a. Aula (2013.2)
Curso PHP - 1a. Aula (2013.2)Jonata Weber
 
Beyond Ruby with NodeJS - RubyConf Brasil 2010
Beyond Ruby with NodeJS - RubyConf Brasil 2010Beyond Ruby with NodeJS - RubyConf Brasil 2010
Beyond Ruby with NodeJS - RubyConf Brasil 2010Emerson Macedo
 
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web API
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web APITrilha .NET - REST na plataforma Microsoft com ASP.NET Web API
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web APIWaldyr Felix
 
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009Ramon Durães
 

Similar a SignalR - Conexões persistentes no ASP.NET (20)

Introdução ao ASP .NET Web API
Introdução ao ASP .NET Web APIIntrodução ao ASP .NET Web API
Introdução ao ASP .NET Web API
 
Integração de sistemas legados com Plone
Integração de sistemas legados com PloneIntegração de sistemas legados com Plone
Integração de sistemas legados com Plone
 
React Native - JSday
React Native - JSdayReact Native - JSday
React Native - JSday
 
Python 08
Python 08Python 08
Python 08
 
WebHooks no ASP.NET
WebHooks no ASP.NETWebHooks no ASP.NET
WebHooks no ASP.NET
 
Descobrindo APIs REST
Descobrindo APIs RESTDescobrindo APIs REST
Descobrindo APIs REST
 
JavaOne LATAM 2016 - Combinando AngularJS com Java EE
JavaOne LATAM 2016 - Combinando AngularJS com Java EEJavaOne LATAM 2016 - Combinando AngularJS com Java EE
JavaOne LATAM 2016 - Combinando AngularJS com Java EE
 
PyData - Consumindo e publicando web APIs com Python
PyData - Consumindo e publicando web APIs com PythonPyData - Consumindo e publicando web APIs com Python
PyData - Consumindo e publicando web APIs com Python
 
Workflow Foundation 4.0 - Microsoft DevDays 2009
Workflow Foundation 4.0 - Microsoft DevDays 2009Workflow Foundation 4.0 - Microsoft DevDays 2009
Workflow Foundation 4.0 - Microsoft DevDays 2009
 
ASP.NET Web API
ASP.NET Web APIASP.NET Web API
ASP.NET Web API
 
WebAPI-Route-Translate-BasicAuth
WebAPI-Route-Translate-BasicAuthWebAPI-Route-Translate-BasicAuth
WebAPI-Route-Translate-BasicAuth
 
Caipira agil automacao front end selenium
Caipira agil automacao front end seleniumCaipira agil automacao front end selenium
Caipira agil automacao front end selenium
 
Curso PHP - 1a. Aula (2013.2)
Curso PHP - 1a. Aula (2013.2)Curso PHP - 1a. Aula (2013.2)
Curso PHP - 1a. Aula (2013.2)
 
o que é ajax
o que é ajaxo que é ajax
o que é ajax
 
Beyond Ruby with NodeJS - RubyConf Brasil 2010
Beyond Ruby with NodeJS - RubyConf Brasil 2010Beyond Ruby with NodeJS - RubyConf Brasil 2010
Beyond Ruby with NodeJS - RubyConf Brasil 2010
 
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web API
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web APITrilha .NET - REST na plataforma Microsoft com ASP.NET Web API
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web API
 
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
 
Web Offline
Web OfflineWeb Offline
Web Offline
 
ASP.NET 5, MVC 6 e além
ASP.NET 5, MVC 6 e alémASP.NET 5, MVC 6 e além
ASP.NET 5, MVC 6 e além
 
Html5
Html5Html5
Html5
 

Más de André Paulovich

Construindo carreiras inspiradoras - UAIDEV 5.0
Construindo carreiras inspiradoras - UAIDEV 5.0Construindo carreiras inspiradoras - UAIDEV 5.0
Construindo carreiras inspiradoras - UAIDEV 5.0André Paulovich
 
Arquitetura evolutiva - Arquitetura ágil (TDC FLORIPA 2023)
Arquitetura evolutiva - Arquitetura ágil (TDC FLORIPA 2023)Arquitetura evolutiva - Arquitetura ágil (TDC FLORIPA 2023)
Arquitetura evolutiva - Arquitetura ágil (TDC FLORIPA 2023)André Paulovich
 
Equilíbrio entre carreira e vida pessoal
Equilíbrio entre carreira e vida pessoalEquilíbrio entre carreira e vida pessoal
Equilíbrio entre carreira e vida pessoalAndré Paulovich
 
Liberte sua arquitetura com Cloud Native - DEVSUMMIT IGTI
Liberte sua arquitetura com Cloud Native - DEVSUMMIT IGTILiberte sua arquitetura com Cloud Native - DEVSUMMIT IGTI
Liberte sua arquitetura com Cloud Native - DEVSUMMIT IGTIAndré Paulovich
 
Como se tornar o profissional que todos procuram
Como se tornar o profissional que todos procuramComo se tornar o profissional que todos procuram
Como se tornar o profissional que todos procuramAndré Paulovich
 
Levando seu SCM à outro nível com Feature Flags
Levando seu SCM à outro nível com Feature FlagsLevando seu SCM à outro nível com Feature Flags
Levando seu SCM à outro nível com Feature FlagsAndré Paulovich
 
C school Extended - Liberte sua arquitetura com Cloud Native
C school Extended - Liberte sua arquitetura com Cloud NativeC school Extended - Liberte sua arquitetura com Cloud Native
C school Extended - Liberte sua arquitetura com Cloud NativeAndré Paulovich
 
Como se tornar o profissional que todos estão procurando.
Como se tornar o profissional que todos estão procurando.Como se tornar o profissional que todos estão procurando.
Como se tornar o profissional que todos estão procurando.André Paulovich
 
TDC BH 2019 - Arquitetura Evolutiva - Segredo da arquitetura ágil
TDC BH 2019 - Arquitetura Evolutiva - Segredo da arquitetura ágilTDC BH 2019 - Arquitetura Evolutiva - Segredo da arquitetura ágil
TDC BH 2019 - Arquitetura Evolutiva - Segredo da arquitetura ágilAndré Paulovich
 
TDC 2019 Cloud - Liberte sua arquitetura com cloud native
TDC 2019 Cloud - Liberte sua arquitetura com cloud nativeTDC 2019 Cloud - Liberte sua arquitetura com cloud native
TDC 2019 Cloud - Liberte sua arquitetura com cloud nativeAndré Paulovich
 
Semcom - UFV - Florestal - 2019 - André Paulovich
Semcom - UFV - Florestal - 2019 - André PaulovichSemcom - UFV - Florestal - 2019 - André Paulovich
Semcom - UFV - Florestal - 2019 - André PaulovichAndré Paulovich
 
ConnectionDay 2019 - Divinópolis - Transformação digital turbinada
ConnectionDay 2019 - Divinópolis - Transformação digital turbinadaConnectionDay 2019 - Divinópolis - Transformação digital turbinada
ConnectionDay 2019 - Divinópolis - Transformação digital turbinadaAndré Paulovich
 
AKS. O que nunca te falaram. Global Azure Bootcamp BH 2019
AKS. O que nunca te falaram. Global Azure Bootcamp BH 2019AKS. O que nunca te falaram. Global Azure Bootcamp BH 2019
AKS. O que nunca te falaram. Global Azure Bootcamp BH 2019André Paulovich
 
CSchool - s02 e02 - Estratégias de desenvolvimento para turbinar a Transforma...
CSchool - s02 e02 - Estratégias de desenvolvimento para turbinar a Transforma...CSchool - s02 e02 - Estratégias de desenvolvimento para turbinar a Transforma...
CSchool - s02 e02 - Estratégias de desenvolvimento para turbinar a Transforma...André Paulovich
 
MeetupWeek - Transformacao Digital
MeetupWeek - Transformacao DigitalMeetupWeek - Transformacao Digital
MeetupWeek - Transformacao DigitalAndré Paulovich
 
Arquitetura Evolutiva - A retomada do ágil 18 anos depois
Arquitetura Evolutiva - A retomada do ágil 18 anos depoisArquitetura Evolutiva - A retomada do ágil 18 anos depois
Arquitetura Evolutiva - A retomada do ágil 18 anos depoisAndré Paulovich
 
[DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura ...
[DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura ...[DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura ...
[DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura ...André Paulovich
 
Acerto talk - Descobrindo o poder do Cloud Computing
Acerto talk - Descobrindo o poder do Cloud ComputingAcerto talk - Descobrindo o poder do Cloud Computing
Acerto talk - Descobrindo o poder do Cloud ComputingAndré Paulovich
 
Share - Mastermaq - Evolução e o futuro do C#
Share - Mastermaq - Evolução e o futuro do C#Share - Mastermaq - Evolução e o futuro do C#
Share - Mastermaq - Evolução e o futuro do C#André Paulovich
 
Global Azure Bootcamp 2018 - Belo Horizonte - Paulovich
Global Azure Bootcamp 2018 - Belo Horizonte - PaulovichGlobal Azure Bootcamp 2018 - Belo Horizonte - Paulovich
Global Azure Bootcamp 2018 - Belo Horizonte - PaulovichAndré Paulovich
 

Más de André Paulovich (20)

Construindo carreiras inspiradoras - UAIDEV 5.0
Construindo carreiras inspiradoras - UAIDEV 5.0Construindo carreiras inspiradoras - UAIDEV 5.0
Construindo carreiras inspiradoras - UAIDEV 5.0
 
Arquitetura evolutiva - Arquitetura ágil (TDC FLORIPA 2023)
Arquitetura evolutiva - Arquitetura ágil (TDC FLORIPA 2023)Arquitetura evolutiva - Arquitetura ágil (TDC FLORIPA 2023)
Arquitetura evolutiva - Arquitetura ágil (TDC FLORIPA 2023)
 
Equilíbrio entre carreira e vida pessoal
Equilíbrio entre carreira e vida pessoalEquilíbrio entre carreira e vida pessoal
Equilíbrio entre carreira e vida pessoal
 
Liberte sua arquitetura com Cloud Native - DEVSUMMIT IGTI
Liberte sua arquitetura com Cloud Native - DEVSUMMIT IGTILiberte sua arquitetura com Cloud Native - DEVSUMMIT IGTI
Liberte sua arquitetura com Cloud Native - DEVSUMMIT IGTI
 
Como se tornar o profissional que todos procuram
Como se tornar o profissional que todos procuramComo se tornar o profissional que todos procuram
Como se tornar o profissional que todos procuram
 
Levando seu SCM à outro nível com Feature Flags
Levando seu SCM à outro nível com Feature FlagsLevando seu SCM à outro nível com Feature Flags
Levando seu SCM à outro nível com Feature Flags
 
C school Extended - Liberte sua arquitetura com Cloud Native
C school Extended - Liberte sua arquitetura com Cloud NativeC school Extended - Liberte sua arquitetura com Cloud Native
C school Extended - Liberte sua arquitetura com Cloud Native
 
Como se tornar o profissional que todos estão procurando.
Como se tornar o profissional que todos estão procurando.Como se tornar o profissional que todos estão procurando.
Como se tornar o profissional que todos estão procurando.
 
TDC BH 2019 - Arquitetura Evolutiva - Segredo da arquitetura ágil
TDC BH 2019 - Arquitetura Evolutiva - Segredo da arquitetura ágilTDC BH 2019 - Arquitetura Evolutiva - Segredo da arquitetura ágil
TDC BH 2019 - Arquitetura Evolutiva - Segredo da arquitetura ágil
 
TDC 2019 Cloud - Liberte sua arquitetura com cloud native
TDC 2019 Cloud - Liberte sua arquitetura com cloud nativeTDC 2019 Cloud - Liberte sua arquitetura com cloud native
TDC 2019 Cloud - Liberte sua arquitetura com cloud native
 
Semcom - UFV - Florestal - 2019 - André Paulovich
Semcom - UFV - Florestal - 2019 - André PaulovichSemcom - UFV - Florestal - 2019 - André Paulovich
Semcom - UFV - Florestal - 2019 - André Paulovich
 
ConnectionDay 2019 - Divinópolis - Transformação digital turbinada
ConnectionDay 2019 - Divinópolis - Transformação digital turbinadaConnectionDay 2019 - Divinópolis - Transformação digital turbinada
ConnectionDay 2019 - Divinópolis - Transformação digital turbinada
 
AKS. O que nunca te falaram. Global Azure Bootcamp BH 2019
AKS. O que nunca te falaram. Global Azure Bootcamp BH 2019AKS. O que nunca te falaram. Global Azure Bootcamp BH 2019
AKS. O que nunca te falaram. Global Azure Bootcamp BH 2019
 
CSchool - s02 e02 - Estratégias de desenvolvimento para turbinar a Transforma...
CSchool - s02 e02 - Estratégias de desenvolvimento para turbinar a Transforma...CSchool - s02 e02 - Estratégias de desenvolvimento para turbinar a Transforma...
CSchool - s02 e02 - Estratégias de desenvolvimento para turbinar a Transforma...
 
MeetupWeek - Transformacao Digital
MeetupWeek - Transformacao DigitalMeetupWeek - Transformacao Digital
MeetupWeek - Transformacao Digital
 
Arquitetura Evolutiva - A retomada do ágil 18 anos depois
Arquitetura Evolutiva - A retomada do ágil 18 anos depoisArquitetura Evolutiva - A retomada do ágil 18 anos depois
Arquitetura Evolutiva - A retomada do ágil 18 anos depois
 
[DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura ...
[DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura ...[DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura ...
[DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura ...
 
Acerto talk - Descobrindo o poder do Cloud Computing
Acerto talk - Descobrindo o poder do Cloud ComputingAcerto talk - Descobrindo o poder do Cloud Computing
Acerto talk - Descobrindo o poder do Cloud Computing
 
Share - Mastermaq - Evolução e o futuro do C#
Share - Mastermaq - Evolução e o futuro do C#Share - Mastermaq - Evolução e o futuro do C#
Share - Mastermaq - Evolução e o futuro do C#
 
Global Azure Bootcamp 2018 - Belo Horizonte - Paulovich
Global Azure Bootcamp 2018 - Belo Horizonte - PaulovichGlobal Azure Bootcamp 2018 - Belo Horizonte - Paulovich
Global Azure Bootcamp 2018 - Belo Horizonte - Paulovich
 

SignalR - Conexões persistentes no ASP.NET