Websockets

Protocolo que atua sobre o protocolo HTTP para múltiplas transferências de dados com uma única conexão com o intuito enviar e receber dados em tempo real.

Categoria de Tecnologia

Postado em 21 janeiro 2023

Atualizado em 21 janeiro 2023

Palavras-chave: websockets,protocolo,http,https,ssl,regra,internet,tecnologia

Visualizações: 960



O navegador é um software indispensável para a visualização de páginas na web. Com ele também podemos assistir vídeos, ouvir músicas e fazer downloads. Apesar de parecer simples, isso só é possível graças aos protocolos de comunicação entre as máquinas. O protocolo é a base de comunicação para cada tipo de transferência de dados. Além disso, um protocolo pode servir de base para outro protocolo. Isso acontece no caso do webosockets.

O que é websockets?

O websockets é um protocolo de comunicação bidirecional e atua sobre o protocolo HTTP. Um protocolo bidirecional possibilita o envio e o recebimento de dados na comunicação entre duas ou mais máquinas. O websockets usa um canal de comunicação full-duplex, isso quer dizer que tanto o cliente quanto o servidor, após a conexão ter sido estabelecida, podem enviar ou receber mais informações sem a necessidade de solicitar novamente. Assim como o HTTP, o Websockets também usa o TCP como camada de transporte de dados.

Desenvolvido em meados de 2009 pela IETF (Internet Engineering Task Force), websockets foi lançado pela primeira vez no ano de 2010 e teve seu primeiro documento oficial disponibilizado em 2011 com o nome de RFC 6455. A partir de então foi adotado em diversos serviços de entretenimento, comunicação e internet das coisas pelas vantagens que oferece.

Como funciona o websockets?

A conexão inicia-se pelo cliente, que no caso é o navegador. O navegador envia uma solicitação de conexão para o servidor especificado e só recebe uma resposta caso o servidor suporte websockets.

Uma vez que a conexão é estabelecida entre o servidor e o cliente, ela se torna persistente e só é cessada quando o cliente ou o servidor encerra a conexão de modo manual. Isso é, fechando o navegador ou recarregando a página.

Em outras palavras, a transferência de dados pode ser realizada diversas vezes com apenas uma só conexão.

conexão websockets

Como é feita a solicitação por websockets?

A solicitação é feita pelo HTTP, usando o método GET. A diferença é que a conexão contém cabeçalhos específicos que exigem a comunicação em websockets.

Invés de definir um URL com o prefixo “http”, deve-se inserir o prefixo “ws”. Caso seja uma conexão websockets com SSL, o prefixo será “wss”, assim como o “http” torna-se “https”.

No javascript, a implementação de uma conexão websockets é bastante simples:

var ws = new WebSocket("ws://dicionariotec.com/websocket");

ws.onopen = function() {
    console.log("Conexão estabelecida");
};

ws.onmessage = function (msg) { 
    console.log("Mensagem obtida com sucesso: " + msg.data);
};

ws.onclose = function() { 
    console.log("Fechar conexão");
};

Além das funções acima, a classe Websockets também proporciona outras classes convenientes como:

  • WebSocket.onerror
  • WebSocket.send(data)
  • WebSocket.close()

Mais informações sobre websockets podem ser consultadas no site oficial do Mozilla.

Qual é a diferença entre a conexão websockets e HTTP?

O protocolo HTTP é unidirecional, pois os dados geralmente são enviados do servidor para o cliente que solicitou o acesso aos dados. Após o envio de dados for finalizado, a conexão é cessada automaticamente e uma nova conexão será necessária para obter novos dados.

O protocolo Websockets, após ter sucesso na conexão entre o cliente e o servidor pode enviar e receber dados livremente. Mas isso só é possível após a conclusão da conexão HTTP. Isso acontece porque o websockets foi projetado para funcionar sobre o protocolo HTTP, assim usando o mesmo tipo de conexão e o mesmo endereço (URL) para a transferência de dados.

exemplo de conexão http e websockets

Por que usar o websockets?

O websockets foi criado especialmente para superar os limites que as páginas web enfrentam, possibilitando a transferência de dados em tempo real sem a necessidade de recarregar o navegador para atualizar as informações.

Assim, as páginas web podem ter uma melhor interatividade, melhorando a experiência do usuário e o aumentando o desempenho do serviço, pois não é necessário recarregar a página repetitivamente para renovar o conteúdo.

Onde o websockets é utilizado?

O protocolo websockets é utilizado por serviços que rodam em navegador e exigem uma melhor interatividade. Grandes exemplos de serviços que necessitam dessa conexão são sites de bate papo, serviços fintech, jogos online e sistemas de monitoramento em tempo real.

Conclusão

Websockets é um protocolo que funciona sobre o protocolo HTTP para realizar múltiplas transferências de dados sem a necessidade de abrir uma nova conexão. É usado em serviços que necessitam de constantes atualizações em tempo real como serviços de bate-papo ou jogos online.

Projetos práticos

Integrando o PHP com Elasticsearch no desenvolvimento de um sistema de busca

Projeto de criação de um sistema de busca usando o framework Symfony e Elasticsearch. A integração com Kibana também é feito de modo remoto com um raspberrypi.

Desenvolvendo o campo de visão de um personagem em um plano 2D

Detectando objetos que entram dentro do campo de visão do personagem. Útil para servir de "gatilho" para eventos em um jogo.

Criando um sistema de integração contínua (CI/CD)

Fazendo a integração contínua de Jenkins, Sonatype Nexus, Sonatype, JUnit e Gradle para automatizar processos repetitivos. Prática bastante usada em tecnologias de DevOps.

Criando um jogo de pacman usando javascript e pixi.js (parte 1)

Desenvolvimento dos conceitos mais básicos do clássico pacman, como: mapa, animação, deslocamento e detector de colisões.

Tutorial de programação do jogo da serpente em javascript

Programando o clássico jogo da serpente usando o framework p5.js. Tutorial indicado para iniciantes da programação que querem aprender os conceitos básico da área criando jogos.

Veja também

O DNS torna a interface do navegador mais amigável aos usuários

Antes de podermos visualizar o site, o endereço que digitamos na barra de endereço do nosso navegador passa por várias etapas, para só então podermos visualizar o site pela primeira vez...

O usuário malicioso joga a isca e espera a vítima pacientemente

Phishing tem esse nome pois a vítima se torna só mais um peixe na rede. Ter conhecimento de phishing é o melhor jeito de evitar ser um desses peixes

5G (Quinta geração)

Alterna as frequências de transmissão para melhorar o desempenho da comunicação entre os dispositivos, podendo atuar efetivamente em diversos ambientes.

Máscara de sub-rede (subnet mask)

Responsável por identificar cada valor dentro de um endereço IP, como endereço da rede, endereço de sub-rede e endereço da máquina hospedeira.

As tentativas de desligar a internet

Tentativas de desligar a internet tem sido cada vez mais frequentes. Alguns países optam por filtrar conteúdo ao invés de bloquear como a Rússia.

4G (Quarta geração)

Fornece conexão com a rede para dispositivos móveis mesmo quando estes se encontram em deslocamento. Utiliza o protocolo LTE para a transferência de dados.