Publicado por Marcelo Gonçalves em 01 de June de 2010

Pusher – Serviço push em tempo real no browser, baseado em websockets, para rubistas

Pusher é um novo Web service da New Bamboo que facilita enviar dados para os usuários das suas aplicações web "ao vivo", fora do ciclo de requisição e resposta. Eles adotaram a tecnologia de Web Sockets e construíram uma API REST para a qual se pode postar eventos. Seus canais flexíveis são baseados em um modelo de publicação/assinatura e você pode enviar eventos como objetos JSON que se comunicam com todos os navegadores conectados.

Websockets são parte da especificação do HTML5, e são essencialmente conexões TCP nativas de longa duração no browser. Permitem que o cliente estabeleça uma conexão com um servidor e receba um retorno imediato quando houver eventos dos quais ele precisa ser notificado. Websockets tornam suas aplicações mais dinâmicas livrando-as do tradicional ciclo de requisição-resposta sem estado. Suas aplicações podem, portanto, se aproveitar do estado mantido no navegador e que será mantido atualizado com mensagens do seu servidor.

O Pusher torna a adição de websockets à sua aplicação um processo rápido e fácil, usando uma uma Ruby gem para a interação com sua API REST, incluindo autenticação. Há muita documentação no site, além de alguns tutoriais mais aprofundados. O Pusher também oferece ferramentas simples para debugar as conexões socket da sua aplicação. Sua abstração baseada em eventos é manipulada numa biblioteca Javascript que também inclui suporte para um fallback em Flash, caso o browser não tenha suporte a websockets.

Ou.. tente o Faça-Você-Mesmo

Existem várias ferramentas para que você mesmo crie sistemas parecidos e são muito fáceis de se usar. Ilya Grigorik recentemente escreveu um passo-a-passo para criação de um servidor de Web Sockets simples em Ruby usando o EventMachine. Há uma enorme gama de outras soluções open source para publicação de mensagens como Juggernaut e o Cramp.

Em muitos casos, rodar seu próprios servidor socket standalone dá muita flexibilidade para instalações sob medida. No entanto, manter esses servidores socket, debugar as falhas que ocorrerem e ficar a par das especificações não é algo que todo mundo quer fazer. Ao se utilizar hospedagens como o Heroku, o Pusher é uma opção interessante para um serviço socket desacoplado que você pode usar para manter sua infraestrutura magra.

Deixe um Comentário