Pular para o conteúdo

Socket, WebSocket e Socket.io o que são?

Socket é um mecanismo de comunicação usado normalmente para implementar um modelo cliente/servidor que permite a troca de mensagens entre processos de uma maquina ou aplicação servidor e de uma maquina ou aplicação cliente.

WebSocket por sua vez é uma tecnologia muito mais específica que permite a comunicação bidirecional entre browsers, clientes e servidores web sobre um único Socket.

Em outras palavras podemos criar uma conexão persistente entre o cliente e o servidor e ambas as partes podem começar a enviar dados a qualquer momento.

Isso significa que com WebSockets podemos fugir do paradigma de requisição/resposta tradicional de sistemas web em que um browser cliente sempre faz uma requisição e fica aguardando uma resposta do servidor e podemos partir para um conceito novo, em que através do WebSocket o próprio servidor pode efetuar uma requisição diretamente para o browser cliente, isso mesmo nós podemos inverter os papeis.

Uma das possibilidades nesse novo cenário é a criação de sistemas web capazes de receber informações do servidor a partir de uma requisição do próprio servidor e com isso fazer uma ação dentro do sistema e já do lado do cliente, sem a necessidade de por trás do browser fazer qualquer ação, como clicar em um botão, por exemplo.

Com esse mecanismo podemos criar aplicações que são atualizadas em tempo real, basta fazer com que nosso servidor notifique o cliente tão logo seu estado seja atualizado.

Vamos a um exemplo:

Imagina que você está acessando uma página de e-commerce, você está olhando os produtos no momento em que a administração do e-commerce insere um registro de promoção. Com WebSocket o próprio servidor pode enviar uma mensagem para o cliente, no caso você, informando que existe um produto em promoção.

Do lado do cliente a aplicação pode formar um dialog na tela apresentando o produto que acabou de ser colocado em promoção, tudo isso sem a necessidade do cliente clicar em nada.

Websocket é uma tecnologia muito nova, ainda em faze de padronização e adesão por parte de browsers e servidores web, mas a proposta é ambiciosa e deve render bons frutos.

Para que seja possível criar conexões WebSocket é necessário que tanto o browser quanto o servidor tenha suporte a comunicação via Socket.

O Chrome em sua versão mais recente já possui esse suporte e o Node.js já conta com um módulo capaz de disponibilizar suporte a websockets, trata-se do Socket.io.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.