SlideShare uma empresa Scribd logo
1 de 21
Baixar para ler offline
Aplicações WEB - Realtime
E falaram que AJAX era uma revolução.
Alessandro Dias
@adbatista
alessandrodbatista@gmail.com
Fabio L Janiszevski
@fabiosammy
fabiosammy@gmail.com
fabio@pontogestor.com
O que é
The real-time web is a set of technologies and pratices that
enable users to receive information as soon as it is published by
its authors, rather than requiring that they or their software
check a source periodicaly for updates.
O que fazer
● Chat
● Feeds
● Chamadas API
● Modo Colaborativo
Abordagens durante o tempo
● Abordagem da netscape
○ Content type: multipart/x-mixed-replace; boundary=separator
● IE e o Iframe
○ Connection: keep-alive
● AJAX Pooling e LongPooling
○ setInterval({ url: ‘/collection’, success: function(data){
//DoIT
}}, 5000);
● JavaApplet
● FlashSocket
● WebSocket
Basicamente como tudo funciona - PUB SUB
Soluções
HTTP 2.0
O WebSocket vai estar dentro da camada de conexão HTTP,
sem precisar criar uma nova conexão.
Vagrant neles!
Criando o projeto
rails > laravel
vagrant up
vagrant ssh
rails new /var/vagrant/
cd /var/vagrant/
echo “gem ‘therubyracer’, platforms: :
ruby” >> Gemfile
git add .
git commit -m ‘rails > laravel’
rails s -b 0.0.0.0
Experimentando AJAX
Ver a diferença só melhora o objetivo
CRUD
E você levando 1h para criar uma
tela de cadastro ai...
cd /var/vagrant
rails g scaffold Person name:string
birthday:date age:integer
rake db:migrate
git add .
git commit -m ‘rails generate is
awesome!’
GET http://localhost:3000/persons
ops!
GET http://localhost:3000/people
SYNC, FAYE e Rails
Sopa!
Dependências
ah essas gemas preciosas!
echo “gem ‘faye’, ‘~> 1.1.1” >> Gemfile
echo “gem ‘sync’, ‘~> 0.3.5” >>
Gemfile
echo “gem ‘thin’, ‘~> 1.5.1” >> Gemfile
bundle install
rails g sync:install
git commit -m ‘Sync is awesome!’
Rodando o
servidor
Aquele que vai enviar as
notificações
vagrant ssh
cd /var/vagrant
# Added require sync in application.js
# Added Sync tag in application.html
rackup sync.ru -E prodution --host
0.0.0.0
Verificando o Faye
Antes de testar, verifica se não deu
problema!
GET http://localhost:9292/faye/faye.js
# Connect channel (client)
var client = new Faye.Client('http://localhost:9292/faye');
client.subscribe('/messages', function(message) {
alert('Got a message: ' + message.text);
});
# Send message
client.publish('/messages', {
text: 'Hello world'
});
Realtime finalmente :3
E ainda falaram que iframe era muito legal...
Onde aprender mais?
Contato
alessandrodbatista@gmail.com
fabiosammy@gmail.com

Mais conteúdo relacionado

Mais procurados

Chrome Apps e NodeWebkit: traga seu webapp para o Desktop - #outubrorosa
Chrome Apps e NodeWebkit: traga seu webapp para o Desktop - #outubrorosaChrome Apps e NodeWebkit: traga seu webapp para o Desktop - #outubrorosa
Chrome Apps e NodeWebkit: traga seu webapp para o Desktop - #outubrorosaJoselito Nascimento
 
React + Flux (Alt)
React + Flux (Alt)React + Flux (Alt)
React + Flux (Alt)Cezar Luiz
 
Introdução ao Node.js - FATEC SP
Introdução ao Node.js - FATEC SPIntrodução ao Node.js - FATEC SP
Introdução ao Node.js - FATEC SPArthur Fücher
 
Node.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançadoNode.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançadoEduardo Bohrer
 
Testes com Javascript usando Jasmine e Rhino
Testes com Javascript usando Jasmine e RhinoTestes com Javascript usando Jasmine e Rhino
Testes com Javascript usando Jasmine e RhinoYuri Adams
 
O que é nodejs, cases e vantagens
O que é nodejs, cases e vantagensO que é nodejs, cases e vantagens
O que é nodejs, cases e vantagensRodrigo Matheus
 
Uma visão rápida sobre Nodejs
Uma visão rápida sobre NodejsUma visão rápida sobre Nodejs
Uma visão rápida sobre NodejsRafael Soares
 
Nodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis terNodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis terEmerson Macedo
 
Node.js - Devo adotar na minha empresa?
Node.js - Devo adotar na minha empresa?Node.js - Devo adotar na minha empresa?
Node.js - Devo adotar na minha empresa?Pablo Souza
 
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Nerdzão Day #3 - No...
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Nerdzão Day #3 - No...Implementando APIs multiplataforma com ASP.NET Core 2.0 - Nerdzão Day #3 - No...
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Nerdzão Day #3 - No...Renato Groff
 

Mais procurados (20)

Chrome Apps e NodeWebkit: traga seu webapp para o Desktop - #outubrorosa
Chrome Apps e NodeWebkit: traga seu webapp para o Desktop - #outubrorosaChrome Apps e NodeWebkit: traga seu webapp para o Desktop - #outubrorosa
Chrome Apps e NodeWebkit: traga seu webapp para o Desktop - #outubrorosa
 
React Native na globo.com
React Native na globo.comReact Native na globo.com
React Native na globo.com
 
React + Flux (Alt)
React + Flux (Alt)React + Flux (Alt)
React + Flux (Alt)
 
Introdução ao Node.js - FATEC SP
Introdução ao Node.js - FATEC SPIntrodução ao Node.js - FATEC SP
Introdução ao Node.js - FATEC SP
 
Node.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançadoNode.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançado
 
Testes com Javascript usando Jasmine e Rhino
Testes com Javascript usando Jasmine e RhinoTestes com Javascript usando Jasmine e Rhino
Testes com Javascript usando Jasmine e Rhino
 
O que é nodejs, cases e vantagens
O que é nodejs, cases e vantagensO que é nodejs, cases e vantagens
O que é nodejs, cases e vantagens
 
Jdk
JdkJdk
Jdk
 
Node js - Javascript Server Side
Node js - Javascript Server SideNode js - Javascript Server Side
Node js - Javascript Server Side
 
Conhecendo mundo Node.js
Conhecendo mundo Node.jsConhecendo mundo Node.js
Conhecendo mundo Node.js
 
React - Introdução
React - IntroduçãoReact - Introdução
React - Introdução
 
Uma visão rápida sobre Nodejs
Uma visão rápida sobre NodejsUma visão rápida sobre Nodejs
Uma visão rápida sobre Nodejs
 
Nodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis terNodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis ter
 
Node.js - Devo adotar na minha empresa?
Node.js - Devo adotar na minha empresa?Node.js - Devo adotar na minha empresa?
Node.js - Devo adotar na minha empresa?
 
Ionic workshop
Ionic workshopIonic workshop
Ionic workshop
 
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Nerdzão Day #3 - No...
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Nerdzão Day #3 - No...Implementando APIs multiplataforma com ASP.NET Core 2.0 - Nerdzão Day #3 - No...
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Nerdzão Day #3 - No...
 
Html5
Html5Html5
Html5
 
Performance Web com ASP.NET MVC
Performance Web com ASP.NET MVCPerformance Web com ASP.NET MVC
Performance Web com ASP.NET MVC
 
Torquebox
TorqueboxTorquebox
Torquebox
 
Python async
Python asyncPython async
Python async
 

Destaque

Keynote - Rapid 2008
Keynote - Rapid 2008Keynote - Rapid 2008
Keynote - Rapid 2008ToddGrimm
 
Ana animaliak
Ana animaliakAna animaliak
Ana animaliakpodikasle
 
สุขศึกษา
สุขศึกษาสุขศึกษา
สุขศึกษาalonelypim
 
ฉันเหมือนใคร
ฉันเหมือนใครฉันเหมือนใคร
ฉันเหมือนใคร018311144
 
Responsabilidad legal .....
Responsabilidad legal .....Responsabilidad legal .....
Responsabilidad legal .....fkarina
 
Essential steps to rolling out Jet Essentials
Essential steps to rolling out Jet Essentials Essential steps to rolling out Jet Essentials
Essential steps to rolling out Jet Essentials Heath Turner
 
ฉันเหมือนใคร2003
ฉันเหมือนใคร2003ฉันเหมือนใคร2003
ฉันเหมือนใคร2003018311144
 
James marshall math blog
James marshall math blogJames marshall math blog
James marshall math blog40475044
 
Presentation2
Presentation2Presentation2
Presentation240475044
 
Career project
Career projectCareer project
Career projectginaliendo
 

Destaque (20)

Keynote - Rapid 2008
Keynote - Rapid 2008Keynote - Rapid 2008
Keynote - Rapid 2008
 
Printads
PrintadsPrintads
Printads
 
Year book 8 th ‘b’ 2011
Year  book  8 th ‘b’  2011Year  book  8 th ‘b’  2011
Year book 8 th ‘b’ 2011
 
Green computing
Green computingGreen computing
Green computing
 
Ana animaliak
Ana animaliakAna animaliak
Ana animaliak
 
สุขศึกษา
สุขศึกษาสุขศึกษา
สุขศึกษา
 
Arkadaslar
ArkadaslarArkadaslar
Arkadaslar
 
ฉันเหมือนใคร
ฉันเหมือนใครฉันเหมือนใคร
ฉันเหมือนใคร
 
web design
web designweb design
web design
 
Responsabilidad legal .....
Responsabilidad legal .....Responsabilidad legal .....
Responsabilidad legal .....
 
Essential steps to rolling out Jet Essentials
Essential steps to rolling out Jet Essentials Essential steps to rolling out Jet Essentials
Essential steps to rolling out Jet Essentials
 
Overkappingen
OverkappingenOverkappingen
Overkappingen
 
ฉันเหมือนใคร2003
ฉันเหมือนใคร2003ฉันเหมือนใคร2003
ฉันเหมือนใคร2003
 
Reaction Forces
Reaction ForcesReaction Forces
Reaction Forces
 
Pigen og træet
Pigen og træetPigen og træet
Pigen og træet
 
James marshall math blog
James marshall math blogJames marshall math blog
James marshall math blog
 
1 canyucel1
1 canyucel11 canyucel1
1 canyucel1
 
Presentation2
Presentation2Presentation2
Presentation2
 
Career project
Career projectCareer project
Career project
 
Askinsafhali
AskinsafhaliAskinsafhali
Askinsafhali
 

Semelhante a Realtime WEB - AJAX, WebSocket e Faye

Aplicações Realtime em Android | Fisl 15 | GuMobileRS
Aplicações Realtime em Android | Fisl 15 | GuMobileRSAplicações Realtime em Android | Fisl 15 | GuMobileRS
Aplicações Realtime em Android | Fisl 15 | GuMobileRSJackson F. de A. Mafra
 
Workshop Hands-On APIX 2018 - Trilha Básica
Workshop Hands-On APIX 2018 - Trilha BásicaWorkshop Hands-On APIX 2018 - Trilha Básica
Workshop Hands-On APIX 2018 - Trilha BásicaSensedia
 
Apresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemApresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemRodrigo Valerio
 
WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )
WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )
WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )João Moura
 
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
 
Surpreenda-se com o Silverlight 3
Surpreenda-se com o Silverlight 3Surpreenda-se com o Silverlight 3
Surpreenda-se com o Silverlight 3Rodrigo Kono
 
Tecnologias para desenvolvimento ágil de aplicações Web-Isemanatsi_UTFPR
Tecnologias para desenvolvimento ágil de aplicações Web-Isemanatsi_UTFPRTecnologias para desenvolvimento ágil de aplicações Web-Isemanatsi_UTFPR
Tecnologias para desenvolvimento ágil de aplicações Web-Isemanatsi_UTFPRAlessandro Dias
 
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
 
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015  Porto Alegre - Interfaces ricas com Rails e React.JSTDC2015  Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JSRodrigo Urubatan
 
Escalabilidade em Aplicações - Fisl13
Escalabilidade em Aplicações - Fisl13Escalabilidade em Aplicações - Fisl13
Escalabilidade em Aplicações - Fisl13Flavio Torres
 
DevDay - O elo perdido: sincronizando webapps
DevDay - O elo perdido: sincronizando webappsDevDay - O elo perdido: sincronizando webapps
DevDay - O elo perdido: sincronizando webappsSuissa
 
Ruby on Rails 100% na cloud com heroku e outros serviços
Ruby on Rails 100% na cloud com heroku e outros serviçosRuby on Rails 100% na cloud com heroku e outros serviços
Ruby on Rails 100% na cloud com heroku e outros serviçosBruno Ghisi
 
O bom, o mau, o vilão... e o node.js
O bom, o mau, o vilão... e o node.jsO bom, o mau, o vilão... e o node.js
O bom, o mau, o vilão... e o node.jsNuno Paz
 
QCon 2019 - Kubernetes Deepdive
QCon 2019 -  Kubernetes DeepdiveQCon 2019 -  Kubernetes Deepdive
QCon 2019 - Kubernetes DeepdiveRicardo Katz
 
Fsi8a Sistemas Internet
Fsi8a Sistemas InternetFsi8a Sistemas Internet
Fsi8a Sistemas InternetLuiz Domingues
 
Arquitetura de aplicações Web 2.0 em Java
Arquitetura de aplicações Web 2.0 em JavaArquitetura de aplicações Web 2.0 em Java
Arquitetura de aplicações Web 2.0 em JavaBreno Vitorino
 

Semelhante a Realtime WEB - AJAX, WebSocket e Faye (20)

Aplicações Realtime em Android | Fisl 15 | GuMobileRS
Aplicações Realtime em Android | Fisl 15 | GuMobileRSAplicações Realtime em Android | Fisl 15 | GuMobileRS
Aplicações Realtime em Android | Fisl 15 | GuMobileRS
 
Workshop Hands-On APIX 2018 - Trilha Básica
Workshop Hands-On APIX 2018 - Trilha BásicaWorkshop Hands-On APIX 2018 - Trilha Básica
Workshop Hands-On APIX 2018 - Trilha Básica
 
Apresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemApresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvem
 
Phonegap
PhonegapPhonegap
Phonegap
 
WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )
WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )
WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )
 
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
 
Web Performance Client Side
Web Performance Client SideWeb Performance Client Side
Web Performance Client Side
 
Lab
LabLab
Lab
 
Surpreenda-se com o Silverlight 3
Surpreenda-se com o Silverlight 3Surpreenda-se com o Silverlight 3
Surpreenda-se com o Silverlight 3
 
Tecnologias para desenvolvimento ágil de aplicações Web-Isemanatsi_UTFPR
Tecnologias para desenvolvimento ágil de aplicações Web-Isemanatsi_UTFPRTecnologias para desenvolvimento ágil de aplicações Web-Isemanatsi_UTFPR
Tecnologias para desenvolvimento ágil de aplicações Web-Isemanatsi_UTFPR
 
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
 
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015  Porto Alegre - Interfaces ricas com Rails e React.JSTDC2015  Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
 
Escalabilidade em Aplicações - Fisl13
Escalabilidade em Aplicações - Fisl13Escalabilidade em Aplicações - Fisl13
Escalabilidade em Aplicações - Fisl13
 
DevDay - O elo perdido: sincronizando webapps
DevDay - O elo perdido: sincronizando webappsDevDay - O elo perdido: sincronizando webapps
DevDay - O elo perdido: sincronizando webapps
 
Ruby on Rails 100% na cloud com heroku e outros serviços
Ruby on Rails 100% na cloud com heroku e outros serviçosRuby on Rails 100% na cloud com heroku e outros serviços
Ruby on Rails 100% na cloud com heroku e outros serviços
 
O bom, o mau, o vilão... e o node.js
O bom, o mau, o vilão... e o node.jsO bom, o mau, o vilão... e o node.js
O bom, o mau, o vilão... e o node.js
 
Plack
PlackPlack
Plack
 
QCon 2019 - Kubernetes Deepdive
QCon 2019 -  Kubernetes DeepdiveQCon 2019 -  Kubernetes Deepdive
QCon 2019 - Kubernetes Deepdive
 
Fsi8a Sistemas Internet
Fsi8a Sistemas InternetFsi8a Sistemas Internet
Fsi8a Sistemas Internet
 
Arquitetura de aplicações Web 2.0 em Java
Arquitetura de aplicações Web 2.0 em JavaArquitetura de aplicações Web 2.0 em Java
Arquitetura de aplicações Web 2.0 em Java
 

Realtime WEB - AJAX, WebSocket e Faye