SwiftHTML & CSSSolidityDesenvolvimento de JogosSolana/Rust
16.02.2025

Comunicação com Sockets TCP via JavaScript no Navegador

Resposta Rápida

Para conectar a um socket TCP através de um navegador, você pode usar a tecnologia WebSockets. Esta tecnologia foi projetada para estabelecer uma conexão interativa. Abaixo está um exemplo de código em JavaScript que permite criar tal conexão:

// Estabelecendo a conexão via WebSocket.
var socket = new WebSocket('ws://exemplo.com/socket');

// Enviando um cumprimento após a conexão estar aberta.
socket.onopen = () => socket.send('Olá, servidor!');

// Recebendo e processando mensagens recebidas.
socket.onmessage = event => console.log('Servidor:', event.data);

// Função para enviar mensagens ao servidor.
const sendMsg = msg => socket.send(msg);

// Fechando a conexão após terminar o trabalho.
const closeSocket = () => socket.close();

Não se esqueça de substituir ws://exemplo.com/socket pela URL do seu servidor WebSocket. Ao mesmo tempo, assegure-se de que o servidor está configurado para aceitar mensagens WebSocket como uma conexão TCP.

Trabalhando com WebSockets

Se o seu servidor TCP não suporta WebSockets, você pode utilizar um servidor proxy para converter mensagens WebSocket em uma conexão TCP. Por exemplo, o serviço WS2S é ideal para esse propósito.

Chrome e Sockets TCP

No navegador Chrome, você pode experimentar o uso direto de sockets TCP/UDP através das APIs de Apps do Chrome. No entanto, observe que esta é uma funcionalidade experimental.

Outras Métodos de Conexão

Se a conexão direta com sockets não for possível, considere as seguintes alternativas:

  • WebRTC: Um método para comunicação direta ponto a ponto.
  • jSocket: Uma solução baseada em Flash que está gradualmente perdendo relevância.
  • WebSockets do lado do servidor: Criando um servidor WebSocket (por exemplo, usando Node.js) que atua como intermediário entre o navegador e o socket TCP.

Visualização

Vamos visualizar como a conexão ocorre através do WebSocket:

🖥️ ---(🌐 WebSocket 🌐)---> 🔌Servidor TCP🔌

Ou ao usar WebRTC:

🖥️ ---(🚇 WebRTC 🚇)---> 🔌 Servidor TCP 🔌

Ambos os métodos proporcionam uma conexão, mas são implementados de maneiras diferentes.

Futuro: O Acesso Direto a Sockets se Tornará Disponível?

Até agora, navegadores padrão não oferecem a capacidade de conexão direta via sockets TCP/IP. No entanto, o surgimento da API Raw Sockets proposta pelo W3C traz esperança para uma expansão das funcionalidades dos navegadores no futuro.

Aprendendo com Exemplos e Modelos

A melhor maneira de aprender é através da prática, familiarizando-se com exemplos de uso do HTML5 WebSocket, estudando a API de Sockets do Chrome para o desenvolvimento de extensões e prestando atenção ao repositório ws2s no GitHub.

Recursos Úteis

  1. A API WebSocket (WebSockets) - Web APIs | MDN — Documentação aprofundada da API WebSocket.
  2. Web Sockets - Levando Sockets para a Web | web.dev — Uma introdução ao trabalho com WebSockets.
  3. Web Sockets | Posso usar... — Um serviço para verificar o suporte a tecnologia em vários navegadores.
  4. Socket.IO — Uma poderosa biblioteca para aplicações web em tempo real.
  5. Net | Documentação do Node.js — Um guia para criar servidores TCP/IP com Node.js.
  6. WebSockets no Heroku | Centro de Desenvolvimento Heroku — Informações úteis sobre como usar WebSockets na plataforma Heroku.
  7. RFC 6455: O Protocolo WebSocket — Detalhes técnicos do protocolo WebSocket.

Video

Did you like this article? Rate it from 1 to 5:

Thank you for voting!