SlideShare uma empresa Scribd logo
1 de 29
Baixar para ler offline
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
Agenda

Conceitos

Push
Technology

Cenários

Técnicas

SignalR

Demo

Alternativas

Conclusão

Q&A
Conhecimento é...
...poder
Informação
Dados em tempo Real
Computação em tempo real
Computação em tempo real

A
B
C

• Agressivo

• Baixo

• Consistente
Push Technology
Push Technology
Cenários
Cenários
Cenários
HTTP Normal

Cliente

Servidor
Polling

Tempo

Servidor

Cliente
Polling

setInterval(function () {
$.ajax({
type: "POST",
url: "URL",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
// do something...
}
});
}, 10000);
Long Polling

Tempo

Servidor

Cliente
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
}
});
}
Server Sent Events

Tempo

Servidor

Cliente
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);
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
Forever Frame

Tempo

Servidor

Cliente
Forever Frame
<iframe src="URL" style="visibility: hidden;">

<script>doSomething();</script>

window.parent
Web Sockets

Tempo

Servidor

Cliente
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();
}
SignalR
Alternativas
Dev Day 2013: Push Notification + SignalR

Mais conteúdo relacionado

Semelhante a Dev Day 2013: Push Notification + SignalR

Visual Studio 2010 e C# 4
Visual Studio 2010 e C# 4Visual Studio 2010 e C# 4
Visual Studio 2010 e C# 4CDS
 
InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...
InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...
InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...iMasters
 
Mackenzie - TypeScript
Mackenzie - TypeScript Mackenzie - TypeScript
Mackenzie - TypeScript MVP Microsoft
 
APIs gerenciadas de ponta a ponta
APIs gerenciadas de ponta a pontaAPIs gerenciadas de ponta a ponta
APIs gerenciadas de ponta a pontaFábio Rosato
 
APIs gerenciadas de ponta a ponta
APIs gerenciadas de ponta a pontaAPIs gerenciadas de ponta a ponta
APIs gerenciadas de ponta a pontaJosé Vahl
 
Construindo aplicações para o Windows Phone com Silverlight
Construindo aplicações para o Windows Phone com Silverlight  Construindo aplicações para o Windows Phone com Silverlight
Construindo aplicações para o Windows Phone com Silverlight Luciano Condé
 
Surpreenda-se com o Silverlight 3
Surpreenda-se com o Silverlight 3Surpreenda-se com o Silverlight 3
Surpreenda-se com o Silverlight 3Rodrigo Kono
 
Monitoracao Inteligente na Globo.com
Monitoracao Inteligente na Globo.comMonitoracao Inteligente na Globo.com
Monitoracao Inteligente na Globo.comDenis Vieira
 
Aplicações Realtime com PHP
Aplicações Realtime com PHPAplicações Realtime com PHP
Aplicações Realtime com PHPGustavo Castro
 
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.Rodrigo Senra
 
Do 502 BadGateway ao record de 200
Do 502 BadGateway ao record de 200Do 502 BadGateway ao record de 200
Do 502 BadGateway ao record de 200Bruno Paiuca
 
B2B no Mercado Eletrônico: Do SaaS ao PaaS
B2B no Mercado Eletrônico: Do SaaS ao PaaSB2B no Mercado Eletrônico: Do SaaS ao PaaS
B2B no Mercado Eletrônico: Do SaaS ao PaaSRicardo Pardini
 
ASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoComunidade NetPonto
 
Monitoramento em tempo real (DEVDAY2015)
Monitoramento em tempo real (DEVDAY2015)Monitoramento em tempo real (DEVDAY2015)
Monitoramento em tempo real (DEVDAY2015)Marcus Lacerda
 
20140520 Microsoft WebCamp - DataBinding with KnockoutJS
20140520 Microsoft WebCamp - DataBinding with KnockoutJS20140520 Microsoft WebCamp - DataBinding with KnockoutJS
20140520 Microsoft WebCamp - DataBinding with KnockoutJSJoão Pedro Martins
 
inConcert Allegro Portugues
inConcert  Allegro PortuguesinConcert  Allegro Portugues
inConcert Allegro PortuguesDiegoPonce
 
Intervalo Técnico - QG Mobile
Intervalo Técnico - QG MobileIntervalo Técnico - QG Mobile
Intervalo Técnico - QG MobileVitor Albuquerque
 

Semelhante a Dev Day 2013: Push Notification + SignalR (20)

Visual Studio 2010 e C# 4
Visual Studio 2010 e C# 4Visual Studio 2010 e C# 4
Visual Studio 2010 e C# 4
 
InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...
InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...
InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...
 
Mackenzie - TypeScript
Mackenzie - TypeScript Mackenzie - TypeScript
Mackenzie - TypeScript
 
APIs gerenciadas de ponta a ponta
APIs gerenciadas de ponta a pontaAPIs gerenciadas de ponta a ponta
APIs gerenciadas de ponta a ponta
 
APIs gerenciadas de ponta a ponta
APIs gerenciadas de ponta a pontaAPIs gerenciadas de ponta a ponta
APIs gerenciadas de ponta a ponta
 
Tdc 2020 Floripa
Tdc 2020 FloripaTdc 2020 Floripa
Tdc 2020 Floripa
 
Construindo aplicações para o Windows Phone com Silverlight
Construindo aplicações para o Windows Phone com Silverlight  Construindo aplicações para o Windows Phone com Silverlight
Construindo aplicações para o Windows Phone com Silverlight
 
Surpreenda-se com o Silverlight 3
Surpreenda-se com o Silverlight 3Surpreenda-se com o Silverlight 3
Surpreenda-se com o Silverlight 3
 
Monitoracao Inteligente na Globo.com
Monitoracao Inteligente na Globo.comMonitoracao Inteligente na Globo.com
Monitoracao Inteligente na Globo.com
 
Aplicações Realtime com PHP
Aplicações Realtime com PHPAplicações Realtime com PHP
Aplicações Realtime com PHP
 
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
 
Desenvolvimento Web
Desenvolvimento WebDesenvolvimento Web
Desenvolvimento Web
 
Do 502 BadGateway ao record de 200
Do 502 BadGateway ao record de 200Do 502 BadGateway ao record de 200
Do 502 BadGateway ao record de 200
 
B2B no Mercado Eletrônico: Do SaaS ao PaaS
B2B no Mercado Eletrônico: Do SaaS ao PaaSB2B no Mercado Eletrônico: Do SaaS ao PaaS
B2B no Mercado Eletrônico: Do SaaS ao PaaS
 
ASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis Paulino
 
Monitoramento em tempo real (DEVDAY2015)
Monitoramento em tempo real (DEVDAY2015)Monitoramento em tempo real (DEVDAY2015)
Monitoramento em tempo real (DEVDAY2015)
 
20140520 Microsoft WebCamp - DataBinding with KnockoutJS
20140520 Microsoft WebCamp - DataBinding with KnockoutJS20140520 Microsoft WebCamp - DataBinding with KnockoutJS
20140520 Microsoft WebCamp - DataBinding with KnockoutJS
 
inConcert
inConcert inConcert
inConcert
 
inConcert Allegro Portugues
inConcert  Allegro PortuguesinConcert  Allegro Portugues
inConcert Allegro Portugues
 
Intervalo Técnico - QG Mobile
Intervalo Técnico - QG MobileIntervalo Técnico - QG Mobile
Intervalo Técnico - QG Mobile
 

Dev Day 2013: Push Notification + SignalR