WebSocket
O WebSocket é um protocolo padrão que possibilita a um navegador da web, aplicativo cliente e um aplicativo de servidor da web usar uma conexão full-duplex para comunicação. O produto suporta a especificação WebSocket 1.1, que é construída na especificação 1.0 para fornecer uma forma mais robusta de especificação de manipuladores de mensagens.
HTTP não foi projetado para comunicação em tempo real, duradoura e full duplex entre dois aplicativos. Em muitas instâncias, seu aplicativo de servidor da web ou servlet quer se comunicar com um navegador cliente ou aplicativo em uma conversa em tempo real, duradoura e full-duplex. Os dois aplicativos querem ler e gravar dados livremente dados na ida e na volta. Um exemplo é um aplicativo que exibe constantemente taxas de câmbio de moeda mutáveis no navegador da web de um trader de ações. As soluções técnicas HTTP atuais para este tipo de comunicação são incômodas e ineficientes. Soluções HTTP para comunicação constante de duas vias entre um navegador e um servidor consiste principalmente em pesquisa ou duas conexões HTTP abertas que manipulam apenas o tráfego unidirecional, ou ambas.
O WebSocket usa uma sequência de solicitação-resposta HTTP padrão para estabelecer uma conexão. Quando a conexão é estabelecida, a API WebSocket fornece uma interface de leitura e gravação para ler e escrever dados da conexão estabelecida em uma maneira assíncrona full duplex. O WebSocket também fornece uma interface para o fechamento assíncrono da conexão de qualquer lado.
Como o WebSocket usa uma sequência de solicitação-resposta HTTP padrão para estabelecer uma conexão, a conexão é iniciada, mesmo diante de firewalls e proxies, da mesma maneira que uma conexão HTTP. O WebSocket requer comunicação duplex integral, incluindo leituras e gravações simultâneas na mesma conexão. O plug-in do servidor da web do produto suporta a comunicação full duplex, mas outros firewalls e proxies podem necessitar de modificação para ativar esse suporte. O WebSocket também pode usar SSL para conexões e transmissão de dados seguras. Este protocolo usa SSL da mesma maneira que o protocolo HTTP usa SSL.