Composant WebSocket Delphi — Client et serveur de qualité production
Une implémentation WebSocket native, RFC 6455 pour Delphi et C++Builder. Construisez des clients et serveurs qui tiennent des milliers de connexions concurrentes, tournent sous Windows, macOS, Linux, iOS et Android, et survivent aux réseaux instables avec la reconnexion automatique WatchDog intégrée.
Un composant VCL/FMX prêt à l'emploi qui transforme le protocole WebSocket en une API de propriétés et d'événements que les développeurs Delphi natifs reconnaissent.
Un composant WebSocket Delphi est un composant non-visuel que vous déposez sur une fiche (ou instanciez à l'exécution) pour ouvrir un canal TCP full-duplex entre une application Delphi et tout pair WebSocket RFC 6455 — un navigateur, un service Node.js, un reverse proxy nginx, un broker Mosquitto, un endpoint OpenAI Realtime ou un autre processus Delphi. Contrairement au polling HTTP, un WebSocket garde la connexion ouverte : le serveur peut pousser des données dès qu'elles sont disponibles, avec une latence en millisecondes et sans surcharge HTTP par message.
sgcWebSockets est la bibliothèque WebSocket de référence dans l'écosystème Delphi depuis 2013. Les mêmes composants TsgcWebSocketClient et TsgcWebSocketHTTPServer tournent sans modification de Delphi 7 à Delphi 13, sur Win32, Win64, Linux64, macOS, iOS et Android, et sur C++Builder C2007 à C13. Il n'y a pas de runtime managé, pas de couche d'interop .NET, pas de pont JavaScript — c'est une implémentation Pascal pure qui se compile dans votre binaire.
Pourquoi choisir sgcWebSockets plutôt que faire le vôtre
Écrire un handler PING/PONG est facile. Survivre à un reverse proxy à terminaison TLS, un module WebSocket IIS, un firewall d'entreprise, un handover cellulaire mobile et un test de charge 5 000 clients, non.
Une API, tous les transports
WebSocket simple (ws://), WebSocket TLS (wss://), WebSocket sur HTTP/2, WebSocket sur QUIC/HTTP/3, fallback TCP brut — même composant, mêmes événements. Changez de transport en changeant une propriété.
Reconnexion automatique WatchDog
Activez WatchDog et le client se reconnectera avec backoff exponentiel, se ré-authentifiera, se réabonnera aux topics MQTT et rejouera les publications en file — le pattern canonique mobile / IoT, déjà écrit.
Le threading est résolu
Le serveur utilise un réacteur IOCP / kqueue / epoll sous le capot. Vous écrivez des handlers d'événements ; la bibliothèque les ordonnance à travers un pool de threads avec sérialisation par connexion.
permessage-deflate
Négocié automatiquement selon la RFC 7692. Coupe les payloads JSON de 70–90 % et est supporté par chaque navigateur moderne et load balancer.
Sous-protocoles inclus
MQTT 3.1.1/5.0, AMQP 0.9.1/1.0, STOMP, WAMP et Server-Sent Events roulent au-dessus du même transport WebSocket — une socket TCP, plusieurs protocoles applicatifs.
Serveur HTTP aussi
TsgcWebSocketHTTPServer sert des fichiers statiques, des endpoints REST, des ressources protégées par JWT et OAuth2, des réponses gzip-compressées et un upgrade HTTP/2 dans le même processus que votre endpoint WebSocket.
TLS qui marche vraiment
OpenSSL (cross-plateforme), SChannel (TLS noyau Windows) ou HTTP.sys. Certificats clients, SNI, ALPN, TLS 1.3 avec 0-RTT.
Canaux et diffusion
Les Channels côté serveur groupent les connexions par nom. Broadcast, BroadcastByChannel et BroadcastByUser font du fan-out vers des milliers de pairs en un seul appel.
Éprouvé au combat
En production chez des banques, exchanges, flottes IoT et firmes de trading depuis 2013. Mis à jour chaque mois ; history.txt trace chaque correction.
Matrice de fonctionnalités
Checklist des fonctionnalités
Tout ce que la RFC dit, plus le durcissement opérationnel dont les vrais déploiements ont besoin.
Le côté serveur est symétrique — déposez un TsgcWebSocketHTTPServer, définissez Port, gérez OnConnect et OnMessage, appelez Broadcast pour faire du fan-out vers chaque pair connecté.
Compatibilité
Versions Delphi et C++Builder supportées
Un arbre source, 22 packages runtime — couvrant chaque release Delphi encore en usage commercial actif.
Optimiser permessage-deflate pour le débit vs CPU.
FAQ
Questions fréquentes
Quelles versions de Delphi sont supportées ?
Chaque release commerciale Delphi de Delphi 7 (2002) à Delphi 13 (2025), plus les versions C++Builder correspondantes. Nous livrons 22 packages runtime séparés — un par IDE — depuis un seul arbre source. Il n'y a pas de SKU « legacy » séparé ; chaque client obtient chaque version.
Le composant WebSocket supporte-t-il TLS / wss:// ?
Oui. Définissez URL := 'wss://...' et choisissez un fournisseur TLS : OpenSSL (cross-plateforme, livré avec l'essai), SChannel (TLS noyau Windows, pas de DLL à déployer), ou HTTP.sys (côté serveur, certificat stocké dans le magasin de certificats Windows). Certificats clients, SNI, ALPN, TLS 1.3 et 0-RTT sont tous supportés.
Combien de connexions concurrentes le serveur peut-il gérer ?
Sous Windows le serveur utilise IOCP et passe couramment à 50 000+ connexions concurrentes par processus sur du matériel standard. Sous Linux le réacteur epoll passe à l'échelle de manière similaire. La limite dure est niveau OS (descripteurs de fichiers, plage de ports éphémères, mémoire noyau), pas la bibliothèque.
Quel est le modèle de licence ?
Licence perpétuelle par développeur libre de redevances avec une année de mises à jour incluse. Licences mono-développeur, équipe et site disponibles — voir tarifs. Le code source est inclus avec chaque édition commerciale.
Prêt à ajouter des WebSockets à votre application Delphi ?
Téléchargez l'essai 30 jours entièrement fonctionnel — client, serveur, tous les sous-protocoles, toutes les versions Delphi.