Delphi & C++ Builder WebSocket libraries — comparison guide

Neutralny, oparty na źródłach przegląd bibliotek WebSocket dostępnych dla deweloperów Delphi i C++ Builder w 2026 r.: sgcWebSockets, Indy, ICS, TMS FNC WebSocket, mORMot 2 i samodzielne biblioteki MQTT. Każde twierdzenie o funkcji prowadzi do własnej dokumentacji projektu.

Sześć bibliotek, z których deweloperzy faktycznie korzystają

Jednostronicowe podsumowanie każdej biblioteki z linkiem do oficjalnej dokumentacji. Szczegółowe porównanie znajduje się w macierzy poniżej.

Indy (Internet Direct)

Indy Working Group / Remy Lebeau · BSD / MPL (open source)

Biblioteka TCP/UDP/gniazda surowe dołączona do każdej nowej instalacji RAD Studio. Zawiera ponad 120 klientów i serwerów protokołów wyższego poziomu (HTTP, SMTP, POP3, IMAP, FTP, NNTP, IRC i inne), ale nie zawiera natywnego klienta ani serwera WebSocket — użytkownicy zazwyczaj dodają zewnętrzną nakładkę WebSocket na TIdHTTP / TIdHTTPServer.

Official page

ICS (Internet Component Suite)

François Piette / Magenta Systems Ltd · Free, source-available

Biblioteka sieciowa open-source Delphi / C++ Builder autorstwa Françoisa Piette. Obsługa WebSocket została dodana w ICS V9.0 jako TSslWebSocketCli (w OverbyteIcsWebSocketCli) i klasa serwera THttpWSSrvConn na bazie istniejącego serwera web ICS.

Official page

TMS FNC WebSocket / TMS Sparkle

TMS Software · Commercial

TMS Software oferuje dwa odpowiednie produkty. TMS Sparkle to wieloplatformowa platforma klienta/serwera HTTP (używana wewnętrznie również przez TMS XData i TMS RemoteDB). TMS FNC WebSocket to oddzielna para klienta i serwera WebSocket VCL + FireMonkey implementująca RFC 6455.

Official page

mORMot 2

Arnaud Bouchez / Synopse · MPL / GPL / LGPL (open source)

Framework open-source Object Pascal SOA / ORM / MVC z asynchronicznym serwerem HTTP i WebSocket, REST/JSON, OpenAPI / Swagger, LDAP, DNS, ACME i prymitywami kryptograficznymi. Jednostki serwera Delphi obsługują tylko Windows; FPC (Free Pascal) buduje ten sam kod serwera dla Linux, BSD i macOS. Klienci mobilni są obsługiwani na każdej platformie.

Official page

Stand-alone MQTT-only libraries

Various community authors · Varies (typically MIT / BSD / Apache)

Na GitHub jest opublikowanych kilka jednofunkcyjnych klientów MQTT dla Delphi. Zazwyczaj obejmują jedynie stronę klienta MQTT 3.1.1, nie zawierają serwera MQTT 5.0, AMQP, STOMP ani WAMP i są utrzymywane przez indywidualnych autorów.

Official page

Porównanie funkcji obok siebie

A check () means the project documents native support. A dash () means the project does not provide it natively. A tilde (~) means partial / via add-on / not explicitly documented — see the Sources section for what we could verify.

Protokoły, transport, licencjonowanie

16 rows
Funkcja sgcWebSockets Indy (Internet Direct) ICS (Internet Component Suite) TMS FNC WebSocket / TMS Sparkle mORMot 2 Stand-alone MQTT-only libraries
Klient WebSocket klient RFC 6455 ~
Serwer WebSocket serwer RFC 6455 ~
TLS 1.3 TLS 1.3 obsługiwane przez dostarczony transport ~ ~
Klient HTTP/2 natywny klient HTTP/2 (RFC 7540 / 9113) ~
MQTT wbudowany klient MQTT 3.1.1 / 5.0 ~ ~
AMQP wbudowany klient AMQP 0.9.1 / 1.0
STOMP wbudowany klient STOMP 1.0 / 1.2
WAMP wbudowany klient WAMP v1 / v2
Server push / streaming trwałe połączenie push lub strumieniowe ~ ~ ~
Auto-reconnect wbudowany auto-reconnect klienta / watchdog ~ ~ ~ ~
per-message-deflate (RFC 7692) rozszerzenie kompresji WebSocket ~ ~ ~
Wieloplatformowość Win / macOS / Linux / iOS / Android ~ ~
Dozwolone użycie komercyjne licencja zezwala na komercyjne użycie zamkniętego kodu
Dostępny kod źródłowy kod źródłowy biblioteki jest widoczny dla dewelopera
Aktywne utrzymanie wydanie lub otagowana aktywność w ciągu ostatnich 12–18 miesięcy ~ ~
Model licencji typ licencji Commercial BSD / MPL (open source) Free, source-available Commercial MPL / GPL / LGPL (open source) Varies (typically MIT / BSD / Apache)
Udokumentowana natywna obsługa Nie dostarczane natywnie ~ Częściowe / przez dodatek / niezweryfikowane

Uczciwe dopasowanie dla każdej biblioteki

Każda z tych bibliotek ma prawdziwe grono odbiorców. Właściwy wybór zależy od zakresu protokołów, preferencji licencyjnych i istniejących zależności.

Wybierz sgcWebSockets

Wybierz sgcWebSockets, gdy potrzebujesz WebSocket plus protokołów komunikacyjnych (MQTT, AMQP, STOMP, WAMP), HTTP/2 i klientów AI/LLM z jednego zestawu komponentów z jedną licencją komercyjną, szeroką obsługą wersji Delphi (7–13) włącznie z C++ Builder i celami FireMonkey dla macOS, iOS, Android i Linux.

Wybierz Indy (Internet Direct)

Wybierz Indy, gdy sam WebSocket nie jest wymaganiem — na przykład gdy potrzebujesz zestawu TCP/UDP z permisywną licencją z dojrzałą obsługą HTTP, SMTP, POP3, IMAP, FTP i NNTP, albo gdy chcesz rozszerzyć istniejący TIdHTTPServer własnym handlerem upgrade WebSocket. Indy jest dołączony do RAD Studio, więc nic nie dodaje do listy zależności.

Wybierz ICS (Internet Component Suite)

Wybierz ICS, gdy chcesz open-source'owego zestawu sieciowego Delphi z klientem i serwerem WebSocket, nowoczesnym TLS 1.3 (w tym kryptografią post-kwantową w V9.6) na bazie OpenSSL 3.x, i gdy swobodnie konfigurujesz trasy przez istniejący serwer web ICS. ICS jest wydawany długoterminowo, śledząc aktywnie utrzymywane wersje OpenSSL.

Wybierz TMS FNC WebSocket / TMS Sparkle

Wybierz TMS FNC WebSocket, gdy WebSocket jest jedynym potrzebnym protokołem sieciowym na VCL i FireMonkey, gdy już licencjonujesz inne komponenty TMS FNC (styl API wizualnego i niewiualnego pozostaje spójny) lub gdy zależy ci na historii FNC cross-framework (jedna baza kodu dla VCL i FMX). Do hostowania usług HTTP i HTTP/S TMS Sparkle łączy się z TMS XData.

Wybierz mORMot 2

Wybierz mORMot 2, gdy chcesz open-source'owego pełnostoswego frameworka (ORM, SOA, REST, WebSocket, OpenAPI) dla Object Pascal na licencji MPL/GPL/LGPL, gdy serwer działa na Linux pod FPC, lub gdy potrzebujesz jednego frameworka obejmującego bazę danych, logikę biznesową i transport WebSocket.

Wybierz samodzielne biblioteki tylko MQTT

Wybierz samodzielną bibliotekę tylko MQTT, gdy MQTT jest jedynym potrzebnym protokołem, gdy projekt musi zależeć wyłącznie od kodu z permisywną licencją i gdy chcesz przeczytać każdą linię implementacji protokołu sieciowego. Sprawdź historię commitów wybranego projektu przed jego adoptowaniem — aktywność bardzo się różni między autorami.

Migracja do sgcWebSockets — co się różni

Krótkie uwagi o różnicach API i funkcji przy przechodzeniu z jednej z powyższych bibliotek. Bez deprecjonowania — tylko praktyczne mapowanie.

Migracja z Indy (Internet Direct)

Indy daje surową obsługę HTTP i TCP; sgcWebSockets daje wbudowane ramkowanie WebSocket, ping/pong, auto-reconnect, podprotokołów (MQTT/AMQP/STOMP/WAMP) i per-message-deflate. Jeśli dziś masz serwer HTTP oparty na Indy, sgcWebSockets zapewnia oddzielny TsgcWebSocketHTTPServer zamiast wtyczki do Indy — istniejące trasy HTTP muszą być reimplementowane pod serwerem sgc lub uruchomione obok na różnych portach.

Migracja z ICS (Internet Component Suite)

Obie biblioteki udostępniają klienta WebSocket i serwer WebSocket-over-HTTP. Nazwane protokoły komunikacyjne (MQTT, AMQP, STOMP, WAMP) oraz klienci AI/LLM i API giełd są tylko w sgcWebSockets. Jeśli obecnie uruchamiasz serwer web ICS z trasami WebSocket, sgcWebSockets zapewnia TsgcWebSocketHTTPServer jako zamiennik hosta HTTP+WS, ale API rejestracji tras jest inne.

Migracja z TMS FNC WebSocket / TMS Sparkle

Zarówno sgcWebSockets, jak i TMS FNC WebSocket implementują klienta i serwer RFC 6455. Migruj, zamieniając klasę komponentu i podłączając zdarzenia. Warstwy protokołów zbudowane na wierzchu (MQTT, AMQP, STOMP, WAMP), klient i serwer HTTP/2 oraz ponad 30 integracji API zewnętrznych są tylko w sgcWebSockets. Jeśli używasz TMS MQTT oddzielnie, sgcWebSockets bundluje MQTT do tego samego zestawu.

Migracja z mORMot 2

mORMot 2 opakowuje WebSocket w swojej warstwie SOA; sgcWebSockets zapewnia samodzielny komponent WebSocket / HTTP/2 / MQTT / AMQP / STOMP / WAMP, który można wstawić do dowolnego projektu Delphi. Jeśli aplikacja używa funkcji ORM i SOA mORMot 2, przejście na sgcWebSockets oznacza reimplementację warstwy SOA; jeśli używałeś mORMot 2 tylko do transportu WebSocket, sgcWebSockets jest bliżej odpowiednikiem jeden-do-jednego.

Migracja z samodzielnych bibliotek tylko MQTT

Jeśli aktualnie używasz samodzielnej biblioteki tylko MQTT i zaczniesz dodawać klientów WebSocket, HTTP/2, AMQP lub AI/LLM API, sgcWebSockets konsoliduje wszystko w jeden zestaw z jedną licencją i jednym kanałem aktualizacji.

Każde twierdzenie, z linkiem

Każda komórka w powyższej macierzy odnosi się do jednej z tych oficjalnych stron dokumentacji, repozytoriów lub informacji o wydaniu. Wszystkie adresy URL były sprawdzane metodą HEAD w czasie pisania.

ŹródłoURL
sgcWebSockets — strona produktuhttps://www.esegece.com/products/websockets/
sgcWebSockets — macierz funkcji Delphihttps://www.esegece.com/products/websockets/features/feature-matrix-delphi/
Indy — strona projektu (indyproject.org)https://www.indyproject.org/
Indy — repozytorium GitHub (IndySockets/Indy)https://github.com/IndySockets/Indy
Indy — wydania (najnowsze oznaczone 10.6.3.14)https://github.com/IndySockets/Indy/releases
ICS — informacje o wydaniu V9.0 (wprowadzono obsługę WebSocket)https://wiki.overbyte.eu/wiki/index.php/ICS_V9.0
ICS — informacje o wydaniu V9.6 (TLS 1.3 / PQC)https://wiki.overbyte.eu/wiki/index.php/ICS_V9.6
ICS — strona pobierania (najnowsza stabilna)https://wiki.overbyte.eu/wiki/index.php/ICS_Download
TMS Sparkle — strona produktuhttps://www.tmssoftware.com/site/sparkle.asp
TMS FNC WebSocket — strona produktuhttps://www.tmssoftware.com/site/tmsfncwebsocket.asp
mORMot 2 — repozytorium GitHub (synopse/mORMot2)https://github.com/synopse/mORMot2
mORMot 2 — README (lista protokołów, obsługiwane cele)https://github.com/synopse/mORMot2/blob/master/README.md
mORMot 2 — wydania (v2.4 stabilna)https://github.com/synopse/mORMot2/releases
Forum Synopse (Object Pascal SOA / ORM)https://synopse.info/
Temat GitHub: delphi-mqtt (jednocelowe klienty MQTT społeczności)https://github.com/topics/delphi-mqtt
RFC 6455 — protokół WebSockethttps://datatracker.ietf.org/doc/html/rfc6455
RFC 7692 — rozszerzenia kompresji dla WebSocket (per-message-deflate)https://datatracker.ietf.org/doc/html/rfc7692

Wypróbuj sgcWebSockets

Pobierz bezpłatną edycję Trial i porównaj sgcWebSockets z aktualną biblioteką we własnej aplikacji.