O websocket é um protocolo que possibilita a comunicação bidirecional entre um navegador web e o servidor. Ele permite a criação de um túnel para transformar, de forma contínua, informações entre um navegador e um servidor de uma aplicação. Ele faz parte das especificações do HTML5 e é suportado pelas últimas versões dos navegadores.
Para entender melhor esse protocolo, vamos compara-lo ao modelo HTTP que é o protocolo que utilizamos no dia-a-dia para acessarmos um site. Ou seja, quando abrimos o site no navegador uma conexão é criada e em seguida é realizada uma requisição para o servidor do site que você está acessando. Ao recebe-la, o servidor fará os devidos processos internos para então retornar/devolver uma resposta dessa requisição. Assim que essa resposta é bem recebida (HTTP GET
status 200
= OK
), essa conexão será finalizada, ou seja, seu browser não enviará mais informações para seu servidor e nem ele para seu navegador.
Caso, se deve pedir mais informação para esse servidor, mais uma conexão deverá ser criada, então, o mesmo processo se repetirá.
Como cada requisição dessas possui um atraso nesse modelo client-servidor, isso acaba sendo um grande problema para aplicações web que precisam requisitar ao servidor informações de forma contínua (tempo real de requisição e resposta), como por exemplo, podemos citar aplicações como: um chat, um jogo online, gps e etc.
Mesmo após receber as informações do servidor o navegador pode realizar novas requisições sem precisar recarregar a página utilizando o AJAX - Asynchronous Javascript and XML, no qual faz uma chamada assíncrona feita com JavaScript.
No entanto, mesmo realizando uma chamada assíncrona, por baixo dos panos, será utilizado o protocolo HTTP. Ou seja, uma nova conexão será realizada junto com uma nova requisição, sendo assim, cairemos no mesmo problema de performance.
Portanto, o websocket veio para resolver esse problema de comunicação. Uma vez utilizando ele a conexão criada entre navegador e servidor é contínua. E por isso a velocidade com que essas informações irão trafegar é muito superior ao do protocolo HTTP. Não sendo mais necessário a criação de uma nova conexão.
Top comments (0)