Delphi ve C++ Builder WebSocket kütüphaneleri — karşılaştırma kılavuzu

2026'da Delphi ve C++ Builder geliştiricilerine sunulan WebSocket kütüphanelerinin tarafsız ve kaynak gösterimli bir incelemesi: sgcWebSockets, Indy, ICS, TMS FNC WebSocket, mORMot 2 ve bağımsız MQTT kütüphaneleri. Her özellik iddiası, projenin kendi belgelerine bağlantı verir.

Geliştiricilerin gerçekten kullandığı altı kütüphane

Her kütüphanenin resmi belgelere bağlantı içeren tek paragraflık özeti. Ayrıntılı karşılaştırma aşağıdaki matristedir.

Indy (Internet Direct)

Indy Working Group / Remy Lebeau · BSD / MPL (açık kaynak)

Yakın tarihli her RAD Studio kurulumuyla birlikte gelen açık kaynaklı TCP/UDP/ham soket kütüphanesi. 120'den fazla üst düzey protokol istemcisi ve sunucusu (HTTP, SMTP, POP3, IMAP, FTP, NNTP, IRC ve daha fazlası) sunar ancak yerel bir WebSocket istemcisi veya sunucusu içermez. Kullanıcılar genellikle TIdHTTP / TIdHTTPServer üzerine üçüncü taraf bir WebSocket eklentisi ekler.

Resmi sayfa

ICS (Internet Component Suite)

François Piette / Magenta Systems Ltd · Ücretsiz, kaynak kodu erişilebilir

François Piette tarafından geliştirilen açık kaynaklı Delphi / C++ Builder ağ kütüphanesi. WebSocket desteği, ICS V9.0'da TSslWebSocketCli (OverbyteIcsWebSocketCli içinde) ve mevcut ICS web sunucusu üzerinde bir sunucu sınıfı THttpWSSrvConn olarak eklendi.

Resmi sayfa

TMS FNC WebSocket / TMS Sparkle

TMS Software · Ticari

TMS Software, ilgili iki ürün sunar. TMS Sparkle, çok platformlu bir HTTP istemci / sunucu çerçevesidir (TMS XData ve TMS RemoteDB tarafından dahili olarak da kullanılır). TMS FNC WebSocket, RFC 6455'i uygulayan ayrı bir VCL + FireMonkey WebSocket istemci ve sunucu çiftidir.

Resmi sayfa

mORMot 2

Arnaud Bouchez / Synopse · MPL / GPL / LGPL (açık kaynak)

Asenkron bir HTTP ve WebSocket sunucusu, REST/JSON, OpenAPI / Swagger, LDAP, DNS, ACME ve kriptografi ilkelerine sahip açık kaynaklı Object Pascal SOA / ORM / MVC çerçevesi. Delphi sunucu birimleri yalnızca Windows'u hedefler; FPC (Free Pascal), aynı sunucu kodunu Linux, BSD ve macOS için derler. Mobil istemciler her platformda desteklenir.

Resmi sayfa

Bağımsız, yalnızca MQTT kütüphaneleri

Çeşitli topluluk yazarları · Değişken (genellikle MIT / BSD / Apache)

Delphi için tek amaçlı bir dizi MQTT istemcisi GitHub'da yayımlanmıştır. Bunlar genellikle yalnızca MQTT 3.1.1 istemci tarafını kapsar, MQTT 5.0 sunucusu, AMQP, STOMP veya WAMP içermez ve tek tek yazarlar tarafından sürdürülür.

Resmi sayfa

Yan yana özellik karşılaştırması

Bir onay işareti () projenin yerel desteği belgelediği anlamına gelir. Bir tire () projenin bunu yerel olarak sağlamadığı anlamına gelir. Bir tilde (~) kısmi / eklenti aracılığıyla / açıkça belgelenmemiş anlamına gelir. Doğrulayabildiklerimiz için Kaynaklar bölümüne bakın.

Protokoller, taşıma, lisanslama

16 satır
Özellik sgcWebSockets Indy (Internet Direct) ICS (Internet Component Suite) TMS FNC WebSocket / TMS Sparkle mORMot 2 Bağımsız, yalnızca MQTT kütüphaneleri
WebSocket İstemcisi RFC 6455 istemcisi ~
WebSocket Sunucusu RFC 6455 sunucusu ~
TLS 1.3 Sağlanan taşıma tarafından desteklenen TLS 1.3 ~ ~
HTTP/2 İstemcisi Yerel HTTP/2 istemcisi (RFC 7540 / 9113) ~
MQTT Yerleşik MQTT 3.1.1 / 5.0 istemcisi ~ ~
AMQP Yerleşik AMQP 0.9.1 / 1.0 istemcisi
STOMP Yerleşik STOMP 1.0 / 1.2 istemcisi
WAMP Yerleşik WAMP v1 / v2 istemcisi
Sunucu gönderimi / akış Uzun ömürlü gönderim veya akış bağlantısı ~ ~ ~
Otomatik yeniden bağlanma Yerleşik istemci otomatik yeniden bağlanma / watchdog ~ ~ ~ ~
per-message-deflate (RFC 7692) WebSocket sıkıştırma uzantısı ~ ~ ~
Çok platformlu Win / macOS / Linux / iOS / Android ~ ~
Ticari kullanıma izin verilir Lisans, kapalı kaynaklı ticari kullanıma izin verir
Kaynak kodu mevcut Kütüphane kaynağı geliştirici tarafından görülebilir
Etkin bakım Son 12–18 ayda sürüm veya etiketlenmiş etkinlik ~ ~
Lisans modeli Lisans türü Ticari BSD / MPL (açık kaynak) Ücretsiz, kaynak kodu erişilebilir Ticari MPL / GPL / LGPL (açık kaynak) Değişken (genellikle MIT / BSD / Apache)
Belgelenmiş yerel destek Yerel olarak sağlanmaz ~ Kısmi / eklenti aracılığıyla / doğrulanmamış

sgcWebSockets'e geçiş — neler farklı

Yukarıdaki kütüphanelerden birinden geçiş yapıyorsanız API ve özellik farklarına dair kısa notlar. Karşı taraf eleştirisi değil, yalnızca pratik eşleme.

Indy (Internet Direct) üzerinden geçiş

Indy size ham HTTP ve TCP altyapısını verir; sgcWebSockets ise WebSocket çerçeveleme, ping/pong, otomatik yeniden bağlanma, alt protokoller (MQTT/AMQP/STOMP/WAMP) ve yerleşik per-message-deflate sağlar. Bugün Indy tabanlı bir HTTP sunucunuz varsa, sgcWebSockets Indy'ye bir eklenti yerine ayrı bir TsgcWebSocketHTTPServer sunar. Mevcut HTTP rotalarının sgc sunucusu altında yeniden uygulanması veya her ikisinin farklı bağlantı noktalarında yan yana çalıştırılması gerekir.

ICS (Internet Component Suite) üzerinden geçiş

Her iki kütüphane de bir WebSocket istemcisi ve HTTP üzerinden WebSocket sunucusu sunar. Adlandırılmış mesajlaşma protokolleri (MQTT, AMQP, STOMP, WAMP) ile AI/LLM ve borsa API istemcileri yalnızca sgcWebSockets'e özgüdür. Şu anda WebSocket rotaları olan bir ICS web sunucusu çalıştırıyorsanız, sgcWebSockets TsgcWebSocketHTTPServer bileşenini hazır bir HTTP+WS sunucusu olarak sağlar ancak rota kayıt API'si farklıdır.

TMS FNC WebSocket / TMS Sparkle üzerinden geçiş

sgcWebSockets ve TMS FNC WebSocket'in her ikisi de RFC 6455 istemci ve sunucusunu uygular. Bileşen sınıfını değiştirerek ve olayları yeniden bağlayarak geçiş yapın. Üzerine inşa edilen protokol katmanları (MQTT, AMQP, STOMP, WAMP), HTTP/2 istemcisi ve sunucusu ve 30'dan fazla üçüncü taraf API entegrasyonu yalnızca sgcWebSockets'e özgüdür. TMS MQTT'yi ayrı kullanıyorsanız, sgcWebSockets MQTT'yi aynı pakete dahil eder.

mORMot 2 üzerinden geçiş

mORMot 2, WebSocket'i kendi SOA katmanı içinde sarmalar; sgcWebSockets ise herhangi bir Delphi projesine bırakabileceğiniz bağımsız bir WebSocket / HTTP/2 / MQTT / AMQP / STOMP / WAMP bileşeni sağlar. Uygulamanız mORMot 2'nin ORM ve SOA özelliklerini kullanıyorsa, sgcWebSockets'e geçmek SOA katmanını yeniden uygulamak anlamına gelir; mORMot 2'yi yalnızca WebSocket taşıması için kullandıysanız, sgcWebSockets bire bir daha yakın bir değişimdir.

Bağımsız, yalnızca MQTT kütüphanelerinden geçiş

Şu anda bağımsız, yalnızca MQTT içeren bir kütüphane kullanıyorsanız ve WebSocket, HTTP/2, AMQP veya AI/LLM API istemcileri eklemeye başlarsanız, sgcWebSockets bunların tümünü tek bir lisans ve tek bir güncelleme kanalıyla tek bir pakette birleştirir.

Bağlantılı her iddia

Yukarıdaki matristeki her hücre, bu resmi belge sayfalarından, depolardan veya sürüm notlarından birine dayanır. Tüm URL'ler yazım sırasında HEAD ile kontrol edildi.

KaynakURL
sgcWebSockets — ürün sayfasıhttps://www.esegece.com/products/websockets/
sgcWebSockets — Delphi özellik matrisihttps://www.esegece.com/products/websockets/features/feature-matrix-delphi/
Indy — proje ana sayfası (indyproject.org)https://www.indyproject.org/
Indy — GitHub deposu (IndySockets/Indy)https://github.com/IndySockets/Indy
Indy — sürümler (en son etiketlenen 10.6.3.14)https://github.com/IndySockets/Indy/releases
ICS — V9.0 sürüm notları (WebSocket desteği eklendi)https://wiki.overbyte.eu/wiki/index.php/ICS_V9.0
ICS — V9.6 sürüm notları (TLS 1.3 / PQC)https://wiki.overbyte.eu/wiki/index.php/ICS_V9.6
ICS — indirme sayfası (en son kararlı)https://wiki.overbyte.eu/wiki/index.php/ICS_Download
TMS Sparkle — ürün sayfasıhttps://www.tmssoftware.com/site/sparkle.asp
TMS FNC WebSocket — ürün sayfasıhttps://www.tmssoftware.com/site/tmsfncwebsocket.asp
mORMot 2 — GitHub deposu (synopse/mORMot2)https://github.com/synopse/mORMot2
mORMot 2 — README (protokol listesi, desteklenen hedefler)https://github.com/synopse/mORMot2/blob/master/README.md
mORMot 2 — sürümler (v2.4 kararlı)https://github.com/synopse/mORMot2/releases
Synopse forumu (Object Pascal SOA / ORM)https://synopse.info/
GitHub konusu: delphi-mqtt (topluluğun tek amaçlı MQTT istemcileri)https://github.com/topics/delphi-mqtt
RFC 6455 — WebSocket Protokolühttps://datatracker.ietf.org/doc/html/rfc6455
RFC 7692 — WebSocket için Sıkıştırma Uzantıları (per-message-deflate)https://datatracker.ietf.org/doc/html/rfc7692

sgcWebSockets'i deneyin

Ücretsiz Trial sürümünü indirin ve kendi uygulamanızda sgcWebSockets'i mevcut kütüphanenizle kıyaslayın.