SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Aplicações Web Realtime 
Sem mágicas e sem enrolação
Gabriel Gularte 
Web Developer at Mentis 
CTO at EVIN 
@gabrielfgularte
Como achamos que 
é...
Como é na verdade...
Técnicas de realtime na web 
Websockets, Polling e Long Polling
Websockets 
● Full-Duplex 
● HTML5 API 
● Especificação não está finalizada pelo W3C 
● Não funciona em browsers antigos 
Se você não precisa se preocupar com 
navegadores antigos, use a vontade.
http://caniuse.com/#feat=websocket 
s 
Websockets
Websockets 
http://www.slideshare.net https://www.zendesk.com.br
Websockets 
http://socket.io
Websockets 
https://ws4py.readthedocs.org
Polling 
● Loop que consome dados periodicamente 
● Perde tempo em requests sem mudanças e tráfego desnecessário 
● Defasagem de tempo definido pelo delay do loop 
● Funciona em todos os browsers 
Péssima escolha para construir o seu 
webapp realtime
Polling
Long Polling 
● Uma única conexão até que haja mudança 
● Poupa requests e tráfego de dados desnecessários 
● Caso queira, ainda pode definir um tempo para timeout 
● Funciona em todos os browsers 
Melhor técnica para construir o seu 
webapp realtime
Long Polllliing
Long Polllliing
Long Polllliing
Resumo 
● Nada é "real realtime". Tudo tem um tempo para acontecer 
● Realtime é somente uma sensação (nothing more then feelings) 
● Websockets é API e Polling/Long Polling é técnica 
● Use Websockets se não precisa dar suporte para browsers antigos 
● Não use Polling, só é necessário pra entender a base do Long Polling 
● Long Polling é como pescar, pesque mais!
Muito 
obrigado! 
https://github.com/gabrielfgularte/talks/tree/master/2014/frontendcarioca 
https://medium.com/@gabrielfgularte/understanding-realtime-web-apps-5aef47d51a45

Weitere ähnliche Inhalte

Was ist angesagt?

.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsers
.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsers.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsers
.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsersGustavo Bellini Bigardi
 
Versionamento Ágil com Git
Versionamento Ágil com GitVersionamento Ágil com Git
Versionamento Ágil com Gitelliando dias
 
Vue.js Summit 2018 - Do Server-Side Rendering ao Nuxt
Vue.js Summit 2018 - Do Server-Side Rendering ao NuxtVue.js Summit 2018 - Do Server-Side Rendering ao Nuxt
Vue.js Summit 2018 - Do Server-Side Rendering ao NuxtErick Petrucelli
 
Ampliando suas fronteiras com Node-Webkit
Ampliando suas fronteiras com Node-WebkitAmpliando suas fronteiras com Node-Webkit
Ampliando suas fronteiras com Node-WebkitBeto Muniz
 
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013javamanrj
 

Was ist angesagt? (7)

Lab
LabLab
Lab
 
.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsers
.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsers.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsers
.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsers
 
Versionamento Ágil com Git
Versionamento Ágil com GitVersionamento Ágil com Git
Versionamento Ágil com Git
 
Vue.js Summit 2018 - Do Server-Side Rendering ao Nuxt
Vue.js Summit 2018 - Do Server-Side Rendering ao NuxtVue.js Summit 2018 - Do Server-Side Rendering ao Nuxt
Vue.js Summit 2018 - Do Server-Side Rendering ao Nuxt
 
Ampliando suas fronteiras com Node-Webkit
Ampliando suas fronteiras com Node-WebkitAmpliando suas fronteiras com Node-Webkit
Ampliando suas fronteiras com Node-Webkit
 
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
 
Node.js for Noobs
Node.js for NoobsNode.js for Noobs
Node.js for Noobs
 

Ähnlich wie Realtime Web Apps

TDC2016POA | Trilha Web - Realtime applications com Socket.io
TDC2016POA | Trilha Web - Realtime applications com Socket.ioTDC2016POA | Trilha Web - Realtime applications com Socket.io
TDC2016POA | Trilha Web - Realtime applications com Socket.iotdc-globalcode
 
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Giovanni Bassi
 
Workshop Performance Rails
Workshop Performance RailsWorkshop Performance Rails
Workshop Performance RailsVitor Pellegrino
 
(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScript(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScriptCarlos Santos
 
Arquitetura de IoT na prática com Google Cloud - Join Community 2018
Arquitetura de IoT na prática com Google Cloud - Join Community 2018Arquitetura de IoT na prática com Google Cloud - Join Community 2018
Arquitetura de IoT na prática com Google Cloud - Join Community 2018Alvaro Viebrantz
 
Desenvolvimento de Sistemas Web - HTML5 - Introdução
Desenvolvimento de Sistemas Web - HTML5 - IntroduçãoDesenvolvimento de Sistemas Web - HTML5 - Introdução
Desenvolvimento de Sistemas Web - HTML5 - IntroduçãoFabio Moura Pereira
 
BigQuery Performance Improvements Storage API
BigQuery Performance Improvements Storage APIBigQuery Performance Improvements Storage API
BigQuery Performance Improvements Storage APIAlvaro Viebrantz
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sitesthiagolima
 
WebAssembly além da Web - Casos de Uso em IoT
WebAssembly além da Web - Casos de Uso em IoTWebAssembly além da Web - Casos de Uso em IoT
WebAssembly além da Web - Casos de Uso em IoTGDGFoz
 
T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)Carlos Santos
 
Desenvolvimento de aplicações assíncronas, orientadas a eventos e poliglotas ...
Desenvolvimento de aplicações assíncronas, orientadas a eventos e poliglotas ...Desenvolvimento de aplicações assíncronas, orientadas a eventos e poliglotas ...
Desenvolvimento de aplicações assíncronas, orientadas a eventos e poliglotas ...Rodrigo Peleias
 
Palestra / SDD / Crossbrowsing
Palestra / SDD / CrossbrowsingPalestra / SDD / Crossbrowsing
Palestra / SDD / Crossbrowsinghugodiasneto
 
Desenvolvemos para web?
Desenvolvemos para web?Desenvolvemos para web?
Desenvolvemos para web?Luis Vendrame
 
HTML 5, CSS 3 e o futuro da Web
HTML 5, CSS 3 e o futuro da WebHTML 5, CSS 3 e o futuro da Web
HTML 5, CSS 3 e o futuro da WebDiego Pessoa
 

Ähnlich wie Realtime Web Apps (20)

TDC2016POA | Trilha Web - Realtime applications com Socket.io
TDC2016POA | Trilha Web - Realtime applications com Socket.ioTDC2016POA | Trilha Web - Realtime applications com Socket.io
TDC2016POA | Trilha Web - Realtime applications com Socket.io
 
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
 
Workshop Performance Rails
Workshop Performance RailsWorkshop Performance Rails
Workshop Performance Rails
 
Asa cpbr4
Asa cpbr4Asa cpbr4
Asa cpbr4
 
(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScript(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScript
 
Arquitetura de IoT na prática com Google Cloud - Join Community 2018
Arquitetura de IoT na prática com Google Cloud - Join Community 2018Arquitetura de IoT na prática com Google Cloud - Join Community 2018
Arquitetura de IoT na prática com Google Cloud - Join Community 2018
 
Desenvolvimento de Sistemas Web - HTML5 - Introdução
Desenvolvimento de Sistemas Web - HTML5 - IntroduçãoDesenvolvimento de Sistemas Web - HTML5 - Introdução
Desenvolvimento de Sistemas Web - HTML5 - Introdução
 
BigQuery Performance Improvements Storage API
BigQuery Performance Improvements Storage APIBigQuery Performance Improvements Storage API
BigQuery Performance Improvements Storage API
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sites
 
ASP.NET Signal R - Glauco Godoi
ASP.NET Signal R - Glauco GodoiASP.NET Signal R - Glauco Godoi
ASP.NET Signal R - Glauco Godoi
 
Web tools pt-br
Web tools pt-brWeb tools pt-br
Web tools pt-br
 
WebAssembly além da Web - Casos de Uso em IoT
WebAssembly além da Web - Casos de Uso em IoTWebAssembly além da Web - Casos de Uso em IoT
WebAssembly além da Web - Casos de Uso em IoT
 
T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)
 
Desenvolvimento de aplicações assíncronas, orientadas a eventos e poliglotas ...
Desenvolvimento de aplicações assíncronas, orientadas a eventos e poliglotas ...Desenvolvimento de aplicações assíncronas, orientadas a eventos e poliglotas ...
Desenvolvimento de aplicações assíncronas, orientadas a eventos e poliglotas ...
 
Palestra / SDD / Crossbrowsing
Palestra / SDD / CrossbrowsingPalestra / SDD / Crossbrowsing
Palestra / SDD / Crossbrowsing
 
Desenvolvemos para web?
Desenvolvemos para web?Desenvolvemos para web?
Desenvolvemos para web?
 
HTML5 & suas APIs
HTML5 & suas APIsHTML5 & suas APIs
HTML5 & suas APIs
 
HTML 5, CSS 3 e o futuro da Web
HTML 5, CSS 3 e o futuro da WebHTML 5, CSS 3 e o futuro da Web
HTML 5, CSS 3 e o futuro da Web
 
Workshop - Ionic + firebase
Workshop - Ionic + firebaseWorkshop - Ionic + firebase
Workshop - Ionic + firebase
 

Realtime Web Apps