Server push consiste em um servidor poder se comunicar com o cliente em tempo real sem que o navegador tenha que ficar pedindo atualizações. Uma combinação de técnicas cliente/servidor da Web, onde o servidor transfere os dados para o cliente, mas a conexão de dados permanece aberta.
Juggernaut
O Juggernaut é um plugin para Ruby on Rails que implementa o conceito de server push.
Atenção: O Juggernaut usa conexão socket para trasmitir a mensagem, e para isso funcionar, ele usa um arquivo .swf (flash na versão 8) nos navegadores dos clientes que fica ouvindo determinada porta, esperando por mensagens. Ou seja o usuário deverá ter o plugin flash instalado em seu navegador.
Como acontece
- Cliente A abre uma conexão socket com o servidor socket
- Cliente B faz uma chamada Ajax para o Rails
- Rails envia a mensagem para o servidor socket
- O servidor socket retorna a mensagem para os clientes.
Implantando o processo
1 - Após a instalação é necessário criar o arquivo juggernaut_hosts.yml em config no projeto indicando a configuração do servidor de aplicativo do juggernaut:
- :hosts:
- - :port: 5001
- :host: #ip
- :environment: :development
- - :port: 5001
- :host: #ip
- :environment: :production
2 - Acrescentar os arquivos javascript do Juggernaut (em layout/padrao.rhtml):
3 - Após, é instânciado com o código do usuário:
4 - Criando o arquivo para o servidor juggernaut
5 - Subindo o serviço:
6 - Enviando comando javascript:
- <%= javascript_include_tag :juggernaut %>
3 - Após, é instânciado com o código do usuário:
- <%= juggernaut( :client_id => session[:UsrConectado].cdg_usuario ) %>
4 - Criando o arquivo para o servidor juggernaut
- juggernaut -g juggernaut.yml
5 - Subindo o serviço:
- juggernaut -c juggernaut.yml
6 - Enviando comando javascript:
- #Broadcast:
- Juggernaut.send_to_all("alert('hi from juggernaut')")
- #Usuario especifico:
- Juggernaut.send_to_client( "alert('hi from juggernaut')", 29 )
Comentários
Postar um comentário