Why this guide exists
WebSocket is no longer a niche transport. Trading dashboards, chat backends, multiplayer games, IoT control planes, AI streaming responses, browser-based admin consoles — almost every modern interactive application opens at least one WebSocket. Delphi developers asking “which library should I use?” in 2026 face a smaller field than they might think: not every classic Delphi networking package has caught up with RFC 6455, and some of the ones that have are aimed at very specific niches.
This guide surveys the realistic options as of 2026 — sgcWebSockets, Indy, TMS FNC WX, mORMot, Synapse — and gives a decision matrix at the end. Where claims depend on a vendor's current release, this article describes the situation as of writing; always confirm details against the vendor's latest changelog before committing.
The contenders
sgcWebSockets (eSeGeCe)
Commercial library focused on WebSocket and the broader modern protocol family (HTTP/2, HTTP/3, MQTT, AMQP, STOMP, SSE, WAMP, WebRTC, IoT, AI APIs). Full RFC 6455, per-message deflate, sub-protocols, channels, broadcast helpers, WatchDog auto-reconnect, IOCP server scaling, JavaScript client mirror, .NET port. Free Edition for non-commercial use; four paid editions. Delphi 7 through 13, plus C++Builder and .NET.
Indy (stock)
Stock Indy that ships with Delphi does not include a native WebSocket client or server. Several community add-ons exist (search GitHub for “Indy WebSocket”) but none are part of the official IndyProject distribution as of writing. If you build a WebSocket on top of Indy directly you are essentially writing the framer yourself. Free, ships in the box.
TMS FNC WX (formerly TMS WEB Core / FNC WebSocket)
TMS Software ships a cross-framework WebSocket component as part of the FNC family (TTMSFNCWebSocketClient and a server side via TMS XData / TMS Sparkle). It works on VCL, FMX, LCL and TMS WEB Core. Client-side is solid; server-side is primarily delivered through the TMS XData / Sparkle stack as a feature of those products. Commercial, with per-developer subscription pricing. Delphi 10.x and newer.
mORMot 2
Open-source full-stack framework by Synopse (Arnaud Bouchez). Includes a WebSocket client and server tightly integrated with its SOA/ORM/REST infrastructure. mORMot's WebSocket is mature, fast, supports binary framing and per-message deflate, and is widely used in production for high-scale services. The trade-off is that mORMot is opinionated — using just its WebSocket layer is possible but the natural fit is when you adopt the wider framework. Open source (MPL/GPL/LGPL tri-license), Delphi 7 and up, plus FreePascal.
Synapse
Classic open-source Pascal networking library. As of writing, stock Synapse does not include a WebSocket implementation. Some third-party WebSocket layers built on top of Synapse exist but they are unmaintained or single-author projects. Free.
Feature matrix
| Feature | sgcWebSockets | Indy (stock) | TMS FNC WX | mORMot 2 | Synapse |
|---|---|---|---|---|---|
| WebSocket client | Yes | No | Yes | Yes | No |
| WebSocket server | Yes | No | Via TMS XData/Sparkle | Yes | No |
| RFC 6455 (frames, masking, control frames) | Yes | n/a | Yes | Yes | n/a |
| Per-message deflate (RFC 7692) | Yes | n/a | Partial | Yes | n/a |
| Sub-protocols / channels / broadcast | Yes, built-in | n/a | Manual | Manual | n/a |
| Auto-reconnect / WatchDog | Yes | n/a | Manual | Manual | n/a |
| WebSocket over TLS (wss://) | Yes (OpenSSL, SChannel, BoringSSL) | n/a | Yes | Yes | n/a |
| WebSocket-MQTT / STOMP / WAMP sub-protocols | Yes | n/a | No | Limited | n/a |
| HTTP/2, HTTP/3 | Yes | No | No | Limited | No |
| IOCP / epoll server scaling | Yes (Windows IOCP, Linux epoll) | Thread-per-connection | Depends on host server | Yes | n/a |
| JavaScript client mirror | Yes (ships JS lib) | n/a | Yes (TMS WEB Core integration) | Manual | n/a |
| .NET port | Yes (same API) | n/a | No | No | n/a |
| Delphi versions | D7 - D13 | D7 - D13 | D10.x - D13 | D7 - D13, FPC | D7 - D13, FPC |
| License | Commercial (Free Edition exists) | Free, MIT-style | Commercial | Open source tri-license | Free |
| Vendor support | Included with paid editions | Community (IndyProject) | Included with subscription | Commercial support via Synopse | Community / single author |
| Active maintenance | Monthly releases | Slow but stable | Regular | Very active | Slow |
Picking by scenario
Scenario 1: VCL desktop app that connects to a third-party WebSocket API
You need a client that connects to wss://, sends JSON, receives JSON, reconnects on disconnect, handles TLS. The shortest path is sgcWebSockets (drop the component, set URL, set WatchDog.Attempts, done) or TMS FNC WX if you already license the FNC pack. Indy and Synapse will require writing the framer yourself, which is a lot of work to get RFC 6455 edge cases right.
Scenario 2: Building a WebSocket server for hundreds of clients
sgcWebSockets is the natural choice if you want a standalone server component that serves HTTP and WebSocket on the same port with channels and broadcast. mORMot 2 is the natural choice if you are already building a SOA/REST service inside the mORMot framework — its WebSocket layer integrates with the rest of the stack and is battle-tested at scale.
Scenario 3: Tens of thousands of concurrent connections
Both sgcWebSockets (IOCP on Windows, epoll on Linux) and mORMot 2 have been deployed in production at that scale. Stock Indy's thread-per-connection model is unlikely to keep up without significant architectural work. TMS FNC WX scaling depends on the chosen host server (XData/Sparkle).
Scenario 4: WebSocket inside a Pascal full-stack framework (REST, ORM, SOA)
mORMot 2. It is what mORMot is for. Adopting just the WebSocket layer in isolation is possible but you get the most value when you embrace the wider framework.
Scenario 5: Cross-framework client (VCL, FMX, LCL, TMS WEB Core)
TMS FNC WX is designed for that exact case — one API across all four. sgcWebSockets covers VCL, FMX and C++Builder plus a .NET port, but does not target Lazarus/FPC.
Scenario 6: Need WebSocket plus MQTT, AMQP, WebRTC, HTTP/2, AI APIs
sgcWebSockets is the only library in this comparison that ships all of the above under a single product and a single component model. If your project is on a trajectory from “just a WebSocket client” to “a full real-time stack”, consolidating early is usually cheaper than gluing several libraries together later.
Scenario 7: Tight budget, open-source only, hobby project
mORMot 2 (open source) gives you a serious WebSocket implementation for free. sgcWebSockets' Free Edition is an option for non-commercial use. Indy with a community WebSocket add-on is technically possible but expect to read the relevant RFCs yourself.
Decision matrix
| What matters most | Recommended pick |
|---|---|
| Fastest time to working client + vendor support | sgcWebSockets |
| Open-source full-stack framework | mORMot 2 |
| Cross-framework (VCL/FMX/LCL/WEB Core) | TMS FNC WX |
| Highest concurrent connections, commercial | sgcWebSockets |
| Highest concurrent connections, open source | mORMot 2 |
| One product covering WebSocket + MQTT + HTTP/2 + WebRTC + AI | sgcWebSockets |
| Free / no-commit hobby project | mORMot 2 or sgcWebSockets Free Edition |
| Already inside a TMS XData / Sparkle project | TMS FNC WX |
| Already inside a mORMot project | mORMot 2 |
Checklist before you commit
- Delphi version — confirm the vendor lists your exact version (D7/D10.4/D11/D12/D13) on their compatibility matrix.
- RFC 6455 compliance — check that the library passes the Autobahn WebSocket test suite, or at least handles fragmentation, control frames during fragmentation, and UTF-8 validation correctly.
- TLS provider — OpenSSL is the most common; SChannel matters if you cannot ship OpenSSL DLLs; BoringSSL/ngtcp2 matter if you need QUIC.
- Reconnect semantics — auto-reconnect, exponential backoff, ping/pong keep-alive should be configuration, not your code.
- Server scaling model — IOCP/epoll for tens of thousands of connections; thread-per-connection is fine up to low thousands.
- License compatibility — tri-license (mORMot), commercial subscription (TMS), commercial per-edition (sgcWebSockets), free (Indy/Synapse).
- Maintenance signal — look at the changelog for the last 12 months. Active libraries ship something at least quarterly.
Closing thoughts
The Delphi WebSocket landscape in 2026 is healthier than it looks at first glance. For a quick client, sgcWebSockets gets you working in minutes. For an open-source full-stack project, mORMot 2 is hard to beat. For cross-framework GUI clients, TMS FNC WX is a natural fit. Stock Indy and Synapse remain valuable for their classic Internet protocols but neither owns WebSocket. The right choice depends on where your project sits on the spectrum from “single endpoint” to “full real-time platform” — pick the library that matches both today's requirement and where you expect the project to be in two years.