Choisir une bibliothèque WebSocket pour Delphi — Guide d'achat 2026

· Critiques

Pourquoi ce guide existe

WebSocket n'est plus un transport de niche. Tableaux de bord de trading, backends de chat, jeux multijoueurs, plans de contrôle IoT, réponses streamées d'IA, consoles d'administration web — presque toutes les applications interactives modernes ouvrent au moins un WebSocket. Les développeurs Delphi qui demandent « quelle bibliothèque dois-je utiliser ? » en 2026 font face à un champ plus restreint qu'ils ne pourraient le penser : tous les paquets réseau Delphi classiques n'ont pas rattrapé la RFC 6455, et certains de ceux qui l'ont fait visent des niches très spécifiques.

Ce guide passe en revue les options réalistes en 2026 — sgcWebSockets, Indy, TMS FNC WX, mORMot, Synapse — et donne une matrice de décision à la fin. Lorsque les affirmations dépendent de la release actuelle d'un éditeur, cet article décrit la situation à la date d'écriture ; confirmez toujours les détails avec le dernier changelog de l'éditeur avant de vous engager.

Les prétendants

sgcWebSockets (eSeGeCe)

Bibliothèque commerciale axée sur WebSocket et la famille plus large de protocoles modernes (HTTP/2, HTTP/3, MQTT, AMQP, STOMP, SSE, WAMP, WebRTC, IoT, API IA). RFC 6455 complet, per-message deflate, sous-protocoles, canaux, helpers de diffusion, WatchDog de reconnexion automatique, montée en charge serveur IOCP, miroir client JavaScript, portage .NET. Édition Free pour usage non commercial ; quatre éditions payantes. Delphi 7 à 13, plus C++Builder et .NET.

Indy (standard)

L'Indy standard livré avec Delphi n'inclut pas de client ou serveur WebSocket natif. Plusieurs add-ons communautaires existent (cherchez « Indy WebSocket » sur GitHub) mais aucun ne fait partie de la distribution officielle IndyProject à la date d'écriture. Si vous construisez un WebSocket directement sur Indy, vous écrivez essentiellement le framer vous-même. Gratuit, livré dans la boîte.

TMS FNC WX (anciennement TMS WEB Core / FNC WebSocket)

TMS Software livre un composant WebSocket cross-framework dans la famille FNC (TTMSFNCWebSocketClient et un côté serveur via TMS XData / TMS Sparkle). Il fonctionne sur VCL, FMX, LCL et TMS WEB Core. Le côté client est solide ; le côté serveur est principalement livré via la pile TMS XData / Sparkle comme une fonctionnalité de ces produits. Commercial, avec tarif par abonnement par développeur. Delphi 10.x et plus récent.

mORMot 2

Framework full-stack open source de Synopse (Arnaud Bouchez). Inclut un client et un serveur WebSocket étroitement intégrés à son infrastructure SOA/ORM/REST. Le WebSocket de mORMot est mature, rapide, supporte le framing binaire et per-message deflate, et est largement utilisé en production pour des services à grande échelle. Le compromis est que mORMot est opinionné — utiliser uniquement sa couche WebSocket est possible mais l'ajustement naturel est quand vous adoptez le framework plus large. Open source (tri-licence MPL/GPL/LGPL), Delphi 7 et plus, plus FreePascal.

Synapse

Bibliothèque réseau Pascal open source classique. À la date d'écriture, Synapse standard n'inclut pas d'implémentation WebSocket. Quelques couches WebSocket tierces construites sur Synapse existent mais elles sont non maintenues ou des projets mono-auteur. Gratuit.

Matrice de fonctionnalités

Fonctionnalité sgcWebSockets Indy (standard) TMS FNC WX mORMot 2 Synapse
Client WebSocketOuiNonOuiOuiNon
Serveur WebSocketOuiNonVia TMS XData/SparkleOuiNon
RFC 6455 (frames, masking, control frames)Ouin/aOuiOuin/a
Per-message deflate (RFC 7692)Ouin/aPartielOuin/a
Sous-protocoles / canaux / diffusionOui, intégrén/aManuelManueln/a
Reconnexion auto / WatchDogOuin/aManuelManueln/a
WebSocket sur TLS (wss://)Oui (OpenSSL, SChannel, BoringSSL)n/aOuiOuin/a
Sous-protocoles WebSocket-MQTT / STOMP / WAMPOuin/aNonLimitén/a
HTTP/2, HTTP/3OuiNonNonLimitéNon
Montée en charge serveur IOCP / epollOui (IOCP Windows, epoll Linux)Thread-par-connexionDépend du serveur hôteOuin/a
Miroir client JavaScriptOui (livre une lib JS)n/aOui (intégration TMS WEB Core)Manueln/a
Portage .NETOui (même API)n/aNonNonn/a
Versions DelphiD7 - D13D7 - D13D10.x - D13D7 - D13, FPCD7 - D13, FPC
LicenceCommercial (Édition Free existe)Gratuit, style MITCommercialTri-licence open sourceGratuit
Support éditeurInclus avec les éditions payantesCommunauté (IndyProject)Inclus avec l'abonnementSupport commercial via SynopseCommunauté / auteur unique
Maintenance activeReleases mensuellesLent mais stableRégulierTrès actifLent

Choisir par scénario

Scénario 1 : application bureau VCL qui se connecte à une API WebSocket tierce

Vous avez besoin d'un client qui se connecte à wss://, envoie du JSON, reçoit du JSON, se reconnecte en cas de déconnexion, gère TLS. Le chemin le plus court est sgcWebSockets (déposer le composant, définir URL, définir WatchDog.Attempts, terminé) ou TMS FNC WX si vous avez déjà licence le pack FNC. Indy et Synapse nécessiteront d'écrire le framer vous-même, ce qui représente beaucoup de travail pour gérer correctement les cas limites de la RFC 6455.

Scénario 2 : Construire un serveur WebSocket pour des centaines de clients

sgcWebSockets est le choix naturel si vous voulez un composant serveur autonome qui sert HTTP et WebSocket sur le même port avec canaux et diffusion. mORMot 2 est le choix naturel si vous construisez déjà un service SOA/REST dans le framework mORMot — sa couche WebSocket s'intègre avec le reste de la pile et est éprouvée au combat à grande échelle.

Scénario 3 : Des dizaines de milliers de connexions concurrentes

sgcWebSockets (IOCP sous Windows, epoll sous Linux) et mORMot 2 ont tous deux été déployés en production à cette échelle. Le modèle thread-par-connexion d'Indy standard est peu susceptible de suivre sans un travail architectural significatif. La montée en charge de TMS FNC WX dépend du serveur hôte choisi (XData/Sparkle).

Scénario 4 : WebSocket dans un framework Pascal full-stack (REST, ORM, SOA)

mORMot 2. C'est exactement à cela que mORMot sert. Adopter uniquement la couche WebSocket isolément est possible mais vous obtenez le plus de valeur quand vous embrassez le framework plus large.

Scénario 5 : Client cross-framework (VCL, FMX, LCL, TMS WEB Core)

TMS FNC WX est conçu pour exactement ce cas — une API à travers les quatre. sgcWebSockets couvre VCL, FMX et C++Builder plus un portage .NET, mais ne cible pas Lazarus/FPC.

Scénario 6 : Besoin de WebSocket plus MQTT, AMQP, WebRTC, HTTP/2, API IA

sgcWebSockets est la seule bibliothèque dans cette comparaison qui livre tout ce qui précède sous un seul produit et un seul modèle de composants. Si votre projet est sur une trajectoire qui va de « juste un client WebSocket » à « une pile temps réel complète », consolider tôt est généralement moins cher que de coller plusieurs bibliothèques ensemble plus tard.

Scénario 7 : Budget serré, open source uniquement, projet amateur

mORMot 2 (open source) vous donne une implémentation WebSocket sérieuse gratuitement. L'Édition Free de sgcWebSockets est une option pour usage non commercial. Indy avec un add-on WebSocket communautaire est techniquement possible mais attendez-vous à lire les RFC pertinentes vous-même.

Matrice de décision

Ce qui compte le plusChoix recommandé
Temps le plus court vers un client fonctionnel + support éditeursgcWebSockets
Framework full-stack open sourcemORMot 2
Cross-framework (VCL/FMX/LCL/WEB Core)TMS FNC WX
Le plus de connexions concurrentes, commercialsgcWebSockets
Le plus de connexions concurrentes, open sourcemORMot 2
Un seul produit couvrant WebSocket + MQTT + HTTP/2 + WebRTC + IAsgcWebSockets
Projet amateur gratuit / sans engagementmORMot 2 ou Édition Free sgcWebSockets
Déjà dans un projet TMS XData / SparkleTMS FNC WX
Déjà dans un projet mORMotmORMot 2

Checklist avant de vous engager

Pour conclure

Le paysage WebSocket Delphi en 2026 est plus sain qu'il n'y paraît à première vue. Pour un client rapide, sgcWebSockets vous fait fonctionner en quelques minutes. Pour un projet full-stack open source, mORMot 2 est difficile à battre. Pour des clients GUI cross-framework, TMS FNC WX est un ajustement naturel. Indy et Synapse standard restent précieux pour leurs protocoles Internet classiques mais aucun ne possède WebSocket. Le bon choix dépend de l'endroit où votre projet se situe sur le spectre allant de « endpoint unique » à « plateforme temps réel complète » — choisissez la bibliothèque qui correspond à la fois à l'exigence d'aujourd'hui et à l'endroit où vous attendez le projet dans deux ans.