Componente WebSocket Delphi — cliente e servidor de produção
Uma implementação WebSocket nativa, RFC 6455, para Delphi e C++Builder. Construa clientes e servidores que sustentam milhares de conexões concorrentes, rodam em Windows, macOS, Linux, iOS e Android e sobrevivem a redes instáveis com a reconexão automática WatchDog embutida.
Um componente VCL/FMX drop-in que transforma o protocolo WebSocket em uma API de propriedades e eventos que desenvolvedores Delphi reconhecem como nativa.
Um componente WebSocket Delphi é um componente não visual que você arrasta para um form (ou instancia em runtime) para abrir um canal TCP full-duplex entre uma aplicação Delphi e qualquer par WebSocket RFC 6455 — um navegador, um serviço Node.js, um reverse proxy nginx, um broker Mosquitto, um endpoint OpenAI Realtime ou outro processo Delphi. Diferente de polling HTTP, um WebSocket mantém a conexão aberta: o servidor pode empurrar dados no instante em que estiverem disponíveis, com latência de milissegundos e sem o overhead HTTP por mensagem.
O sgcWebSockets é a biblioteca WebSocket de referência no ecossistema Delphi desde 2013. Os mesmos componentes TsgcWebSocketClient e TsgcWebSocketHTTPServer rodam inalterados do Delphi 7 ao Delphi 13, em Win32, Win64, Linux64, macOS, iOS e Android, e em C++Builder C2007 a C13. Não há runtime gerenciado, nem camada de interop .NET, nem bridge JavaScript — é uma implementação Pascal pura que compila dentro do seu binário.
Por que escolher sgcWebSockets em vez de fazer o seu
Escrever um handler PING/PONG é fácil. Sobreviver a um reverse proxy que termina TLS, a um módulo WebSocket do IIS, a um firewall corporativo, a um handover de celular móvel e a um teste de carga de 5.000 clientes não é.
Uma API, todos os transportes
WebSocket puro (ws://), WebSocket TLS (wss://), WebSocket sobre HTTP/2, WebSocket sobre QUIC/HTTP/3, fallback TCP cru — mesmo componente, mesmos eventos. Troque o transporte mudando uma propriedade.
Reconexão automática WatchDog
Habilite WatchDog e o cliente vai reconectar com backoff exponencial, reautenticar, reassinar tópicos MQTT e repetir publicações enfileiradas — o padrão canônico para mobile / IoT, já escrito.
Threading está resolvido
O servidor usa um reactor IOCP / kqueue / epoll por baixo. Você escreve handlers de evento; a biblioteca os agenda em um pool de threads com serialização por conexão.
permessage-deflate
Negociado automaticamente conforme a RFC 7692. Reduz payloads JSON em 70–90 % e é suportado por todo navegador moderno e load balancer.
Subprotocolos inclusos
MQTT 3.1.1/5.0, AMQP 0.9.1/1.0, STOMP, WAMP e Server-Sent Events rodam sobre o mesmo transporte WebSocket — um socket TCP, vários protocolos de aplicação.
Servidor HTTP também
O TsgcWebSocketHTTPServer serve arquivos estáticos, endpoints REST, recursos protegidos por JWT e OAuth2, respostas comprimidas em gzip e upgrade HTTP/2 no mesmo processo que seu endpoint WebSocket.
TLS que funciona
OpenSSL (multiplataforma), SChannel (TLS de kernel do Windows) ou HTTP.sys. Certificados de cliente, SNI, ALPN, TLS 1.3 com 0-RTT.
Canais & broadcast
Channels do lado servidor agrupam conexões por nome. Broadcast, BroadcastByChannel e BroadcastByUser fazem fan-out para milhares de pares em uma única chamada.
Battle-tested
Em produção em bancos, exchanges, frotas IoT e firmas de trading desde 2013. Atualizado todo mês; o history.txt registra cada correção.
Matriz de recursos
Checklist de recursos
Tudo o que a RFC diz, mais o endurecimento operacional que deployments reais exigem.
O lado servidor é simétrico — arraste um TsgcWebSocketHTTPServer, defina Port, trate OnConnect e OnMessage, chame Broadcast para fazer fan-out a cada par conectado.
Compatibilidade
Versões suportadas de Delphi & C++Builder
Uma única árvore de código, 22 pacotes de runtime — cobrindo cada release do Delphi ainda em uso comercial ativo.
Ajuste de permessage-deflate para throughput vs CPU.
FAQ
Perguntas frequentes
Quais versões do Delphi são suportadas?
Cada release comercial do Delphi do Delphi 7 (2002) ao Delphi 13 (2025), além das versões correspondentes do C++Builder. Entregamos 22 pacotes de runtime separados — um por IDE — a partir de uma única árvore de código. Não há um SKU “legado” à parte; todo cliente recebe todas as versões.
O componente WebSocket suporta TLS / wss://?
Sim. Defina URL := 'wss://...' e escolha um provedor TLS: OpenSSL (multiplataforma, vem com o trial), SChannel (TLS de kernel do Windows, sem DLLs para implantar) ou HTTP.sys (lado servidor, certificado armazenado no Windows certificate store). Certificados de cliente, SNI, ALPN, TLS 1.3 e 0-RTT são todos suportados.
Quantas conexões concorrentes o servidor aguenta?
No Windows o servidor usa IOCP e escala rotineiramente para 50.000+ conexões concorrentes por processo em hardware comum. No Linux o reactor epoll escala de forma semelhante. O limite duro está no SO (file descriptors, faixa de portas efêmeras, memória do kernel), não na biblioteca.
Qual é o modelo de licenciamento?
Licença perpétua por desenvolvedor, royalty-free, com um ano de atualizações incluso. Licenças single-developer, team e site disponíveis — veja preços. O código-fonte está incluído em cada edição comercial.
Pronto para adicionar WebSockets ao seu app Delphi?
Baixe o trial totalmente funcional de 30 dias — cliente, servidor, todos os subprotocolos, todas as versões do Delphi.