quarta-feira, 3 de fevereiro de 2010

Push Server and Juggernaut

 

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

  1. Cliente A abre uma conexão socket com o servidor socket
  2. Cliente B faz uma chamada Ajax para o Rails
  3. Rails envia a mensagem para o servidor socket
  4. 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:

  1. :hosts:
  2.   - :port: 5001
  3.     :host: #ip
  4.     :environment: :development


  5.   - :port: 5001
  6.     :host: #ip
  7.     :environment: :production


2 - Acrescentar os arquivos javascript do Juggernaut (em layout/padrao.rhtml):


  1. <%= javascript_include_tag :juggernaut %>

3 - Após, é instânciado com o código do usuário:

  1. <%= juggernaut( :client_id => session[:UsrConectado].cdg_usuario ) %>

4 - Criando o arquivo para o servidor juggernaut
  1. juggernaut -g juggernaut.yml

5 - Subindo o serviço:
  1. juggernaut -c juggernaut.yml

6 - Enviando comando javascript:
  1. #Broadcast:
  2. Juggernaut.send_to_all("alert('hi from juggernaut')")
  3. #Usuario especifico:
  4. Juggernaut.send_to_client( "alert('hi from juggernaut')", 29 )

Nenhum comentário:

Postar um comentário