Componente WebSocket para Delphi — Cliente y servidor de nivel producción
Implementación WebSocket nativa según RFC 6455 para Delphi y C++Builder. Construye clientes y servidores que mantengan miles de conexiones concurrentes, funcionen en Windows, macOS, Linux, iOS y Android, y sobrevivan a redes inestables gracias a la reconexión automática WatchDog integrada.
Un componente VCL/FMX drop-in que convierte el protocolo WebSocket en una API de propiedades y eventos que cualquier desarrollador Delphi reconoce de inmediato.
Un componente WebSocket para Delphi es un componente no visual que arrastras a un form (o instancias en tiempo de ejecución) para abrir un canal TCP full-duplex entre una aplicación Delphi y cualquier par WebSocket RFC 6455 — un navegador, un servicio Node.js, un proxy inverso nginx, un broker Mosquitto, un endpoint Realtime de OpenAI u otro proceso Delphi. A diferencia del polling HTTP, un WebSocket mantiene la conexión abierta: el servidor puede empujar datos en cuanto están disponibles, con latencia de milisegundos y sin sobrecoste HTTP por mensaje.
sgcWebSockets ha sido la librería WebSocket de referencia en el ecosistema Delphi desde 2013. Los mismos componentes TsgcWebSocketClient y TsgcWebSocketHTTPServer funcionan sin modificaciones desde Delphi 7 hasta Delphi 13, en Win32, Win64, Linux64, macOS, iOS y Android, y en C++Builder C2007 hasta C13. No hay runtime gestionado, ni capa de interop .NET, ni puente JavaScript — es una implementación Pascal pura que se compila dentro de tu binario.
Por qué elegir sgcWebSockets en lugar de implementarlo tú
Escribir un manejador PING/PONG es fácil. Sobrevivir a un proxy inverso que termina TLS, a un módulo WebSocket de IIS, a un firewall corporativo, a un handover móvil entre celdas y a una prueba de carga con 5.000 clientes, no lo es.
Una sola API, todos los transportes
WebSocket plano (ws://), WebSocket TLS (wss://), WebSocket sobre HTTP/2, WebSocket sobre QUIC/HTTP/3, fallback TCP en crudo — mismo componente, mismos eventos. Cambia de transporte modificando una propiedad.
Reconexión automática WatchDog
Activa WatchDog y el cliente reconectará con back-off exponencial, se reautenticará, se resuscribirá a los topics MQTT y reproducirá las publicaciones en cola — el patrón canónico móvil / IoT, ya escrito.
El threading está resuelto
El servidor usa un reactor IOCP / kqueue / epoll por debajo. Tú escribes manejadores de eventos; la librería los planifica sobre un pool de hilos con serialización por conexión.
permessage-deflate
Negociado automáticamente según RFC 7692. Recorta los payloads JSON entre un 70 y un 90 % y está soportado por todos los navegadores modernos y balanceadores.
Sub-protocolos incluidos
MQTT 3.1.1/5.0, AMQP 0.9.1/1.0, STOMP, WAMP y Server-Sent Events viajan sobre el mismo transporte WebSocket — un único socket TCP, múltiples protocolos de aplicación.
También servidor HTTP
TsgcWebSocketHTTPServer sirve archivos estáticos, endpoints REST, recursos protegidos por JWT y OAuth2, respuestas comprimidas con gzip y upgrade HTTP/2 en el mismo proceso que tu endpoint WebSocket.
TLS que realmente funciona
OpenSSL (multiplataforma), SChannel (TLS del kernel de Windows) o HTTP.sys. Certificados cliente, SNI, ALPN, TLS 1.3 con 0-RTT.
Canales y broadcast
Los Channels del servidor agrupan conexiones por nombre. Broadcast, BroadcastByChannel y BroadcastByUser reparten a miles de pares en una sola llamada.
Probado en batalla
En producción en bancos, exchanges, flotas IoT y firmas de trading desde 2013. Actualizado cada mes; history.txt registra cada corrección.
Matriz de funciones
Checklist de funcionalidad
Todo lo que dice la RFC, más el endurecimiento operativo que los despliegues reales necesitan.
El lado servidor es simétrico — arrastra un TsgcWebSocketHTTPServer, fija Port, maneja OnConnect y OnMessage, llama a Broadcast para repartir a cada par conectado.
Compatibilidad
Versiones soportadas de Delphi y C++Builder
Un único árbol de fuentes, 22 paquetes runtime — cubre cada release de Delphi en uso comercial activo.
Cómo ajustar permessage-deflate para throughput frente a CPU.
FAQ
Preguntas frecuentes
¿Qué versiones de Delphi están soportadas?
Todas las versiones comerciales de Delphi desde Delphi 7 (2002) hasta Delphi 13 (2025), más las versiones correspondientes de C++Builder. Distribuimos 22 paquetes runtime separados — uno por IDE — desde un único árbol de fuentes. No existe un SKU “legacy” separado; cada cliente recibe todas las versiones.
¿El componente WebSocket admite TLS / wss://?
Sí. Establece URL := 'wss://...' y elige un proveedor TLS: OpenSSL (multiplataforma, viene con la versión de prueba), SChannel (TLS del kernel de Windows, sin DLLs que desplegar) o HTTP.sys (lado servidor, certificado almacenado en el almacén de certificados de Windows). Certificados cliente, SNI, ALPN, TLS 1.3 y 0-RTT están todos soportados.
¿Cuántas conexiones concurrentes puede manejar el servidor?
En Windows el servidor usa IOCP y escala rutinariamente a más de 50.000 conexiones concurrentes por proceso en hardware estándar. En Linux el reactor epoll escala de forma similar. El límite duro es del SO (descriptores de archivo, rango de puertos efímeros, memoria del kernel), no de la librería.
¿Cuál es el modelo de licencia?
Licencia perpetua por desarrollador libre de royalties con un año de actualizaciones incluido. Disponibles licencias single-developer, team y site — consulta precios. El código fuente se incluye con cada edición comercial.
¿Listo para añadir WebSockets a tu app Delphi?
Descarga la versión de prueba de 30 días totalmente funcional — cliente, servidor, todos los sub-protocolos, todas las versiones de Delphi.