Dev Day 2013: Push Notification + SignalR
-
Upload
walter-dias -
Category
Technology
-
view
1.833 -
download
3
description
Transcript of Dev Day 2013: Push Notification + SignalR
Arquiteto Software
Tecnologias Microsoft
Bio
@walterbh
Walter DiasSI & EAS
Localiza Rent a CarVideo Game Whore
G33KLevel 26
bit.ly/1721Szi
Agenda
ConceitosPush
TechnologyCená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 • Agressivo
B • Baixo
C •Consistente
Push Technology
Push Technology
Cenários
Cenários
Cenários
HTTP Normal
ServidorCliente
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
Servidor
Cliente
Tempo
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: {\ndata: "msg": "hello world",\ndata: "id": 12345\ndata: }\n\n
data, event, id, retry
Forever Frame
Servidor
Cliente
Tempo
Forever Frame
<iframe src="URL" style="visibility: hidden;">
<script>doSomething();</script>
window.parent
Web Sockets
Servidor
Cliente
Tempo
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