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

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.