WebSocket com Node.js – Parte 1: Introdução ao Socket.IO

Para quem não conhece, o WebSocket era parte da especificação do HTML5 que descreve a comunicação bidirecional (envie e recebe mensagens) entre canais através de TCP/IP. Não faz mais parte do HTML5 e ganhou vida própria, sendo o protocolo padronizado pela IETF como RFC 6455 e a API padronizada pela W3C.

Eu não vou perder muito tempo falando do WebSocket por que já tem muitos sites que fizeram isto de maneira clara e inteligente (como o Wikipedia e o Html5 Rocks), mas posso dar o meu palpite: esta é uma das features mais incríveis de todos os tempos quando falamos do universo web!

Dá para fazer tantas coisas bacanas que acredito que, num futuro muito próximo, quando este negócio estiver 100% pronto e aderente, não conseguiremos sequer deixar de pensar em WebSocket nos desenhos de nossas soluções.

Não que a ideia seja totalmente nova – pois sempre demos o nosso jeitinho através do Flash, do Long Pulling e do Ajax – que também são eficientes e possuem melhor compatibilidade com o nosso atual ambiente (visto que o WebSocket é muito novo), porém não sem cobrar o seu preço: o que antes era caro e despadronizado, agora se torna barato, uniforme e eficiente.

Pesquisa e conclua por si só!

O que eu irei falar é sobre uma implementação do WebSocket sensacional para Node.js e Javascript, chamada Socket.IO: ele não só incorpora tudo o que é necessário para nos comunicarmos através de WebSocket, mas também oferece alternativas implícitas caso os ambientes utilizados não oferecem suporte à WebSocket, por serem antigos.

E melhor: tudo isto através de uma interface extremamente simplificada e fácil de entender. Isto coloca a API como uma das mais populares quando falamos em termos de WebSocket. Atrelada aos principais problemas que o Node.js resolve, este duplo combo é quase que imbatível.

Portanto, coders de modo geral, deixem sua camisa de lado e seja bem-vindo ao mundo da programação poliglota, onde utilizamos o que há de melhor disponível no mercado para desenharmos uma solução – como oposição a ficar refém de um único vendor, hasteando a bandeira de que ali reside toda a verdade.

Se você é um destes, eis aqui uma boa porta de entrada para o universo do Node.js – na trilha de desenvolvimento de software, esta já considerada uma das melhores tecnologias dos últimos anos e grandes empresas estão adotando-a, como a Microsoft e o seu Visual Studio Online, que foi criado com Node.js, e como a PayPal, que abandonou o Java para utilizar Node.js em seu principal produto.

Se você não sabe nada de Node.js e está com preguiça de pesquisar, vou resumir: os caras deram um jeito de compilar Javascript do lado do servidor – ponto-final. Aquilo que você fazia no client, agora consegue fazer também no server (exatamente da mesma forma).

Neste caso, a API (que no Node.js é chamada de módulo) Socket.IO é a mesma no client e no server (e isto é bem bacana).

Enfim, instale este negócio agora, senão não irá conseguir construir rodar os códigos que iremos desenvolver nesta série de artigos (ao menos que crie uma conta na Cloud9 – uma IDE Online muito boa que eu utilizo bastante no meu dia-a-dia).

Mas vamos voltar ao Socket.IO. Como já dito, ele abstrai e utiliza o WebSocket como o seu principal mecanismo. E se não for compatível com o meu ambiente? Então o próprio Socket.IO se encarrega de providenciar outros mecanismos de transporte, como fallback:

  • Adobe® Flash® Socket
  • AJAX long polling
  • AJAX multipart streaming
  • Forever Iframe
  • JSONP Polling

Você não precisa se preocupar, por que tudo é transparente para você! Dá para entender por que o módulo é tão popular – pois garante compatibilidade entre diferentes clientes e servidores, sejam através de dispositivos móveis ou desktops, independente de versão de browser e sistema operacional.

E como o WebSocket funciona?

Basicamente ouvimos e transmitimos mensagens. Neste caso, você tem basicamente dois métodos que vão ditar todo o restante: on e emit. Simples assim. No on você deixa o servidor ou o client aguardando uma mensagem chegar e no emit você transmite esta mensagem.

É isto aí amigo: para você que tem tanto trauma de Sockets, só precisa entender estes dois métodos! Se entendeu, você já concluiu 85% do curso de Socket.IO!

Vamos a um fluxo básico para você frisar melhor (se refere ao registro em um chat).

Imagem

Cara, é isto! Você simplesmente envia (emit) uma mensagem para alguém que esteja esperando (on) por ela. Quando ele recebe, ele faz algo com isto e pode, inclusive, responder com uma mensagem (emit) para o cliente, caso ele esteja aguardando (on) por um retorno.

Na próxima parte nós vamos ver um aplicativo bem simples que demonstra todos os estes conceitos na prática!

Até lá!

Etiquetado , , , , , , ,

2 pensamentos sobre “WebSocket com Node.js – Parte 1: Introdução ao Socket.IO

  1. […] post se refere a segunda parte da série WebSocket com Node.js, clique aqui e confira a primeira […]

  2. joao filho disse:

    e painel de chaamadas – tipo a que encontramos em hospitais?

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: