Delphi için WebSocket Kütüphanesi Seçimi — 2026 Satın Alma Kılavuzu

· İncelemeler

Bu kılavuz neden var

WebSocket artık niş bir taşıma değil. Alım satım panoları, sohbet arka uçları, çok oyunculu oyunlar, IoT kontrol düzlemleri, Yapay Zeka akış yanıtları, tarayıcı tabanlı yönetici konsolları — neredeyse her modern etkileşimli uygulama en az bir WebSocket açar. 2026'da “hangi kütüphaneyi kullanmalıyım?” diye soran Delphi geliştiricileri, düşündüklerinden daha küçük bir alanla karşı karşıya: her klasik Delphi ağ paketi RFC 6455'i yakalamadı ve yakalayanların bazıları çok belirli nişlere yöneliktir.

Bu kılavuz, 2026 itibarıyla gerçekçi seçenekleri — sgcWebSockets, Indy, TMS FNC WX, mORMot, Synapse — inceler ve sonunda bir karar matrisi sunar. İddiaların bir sağlayıcının mevcut sürümüne bağlı olduğu yerlerde, bu makale yazıldığı tarihteki durumu açıklar; karar vermeden önce ayrıntıları her zaman sağlayıcının en son değişiklik günlüğüyle teyit edin.

Adaylar

sgcWebSockets (eSeGeCe)

WebSocket'e ve daha geniş modern protokol ailesine (HTTP/2, HTTP/3, MQTT, AMQP, STOMP, SSE, WAMP, WebRTC, IoT, Yapay Zeka API'leri) odaklanan ticari kütüphane. Tam RFC 6455, mesaj başına deflate, alt protokoller, kanallar, broadcast yardımcıları, WatchDog otomatik yeniden bağlanma, IOCP sunucu ölçeklendirme, JavaScript istemci yansıması, .NET portu. Ticari olmayan kullanım için Free Edition; dört ücretli sürüm. Delphi 7'den 13'e kadar, ayrıca C++Builder ve .NET.

Indy (standart)

Delphi ile birlikte gelen standart Indy, yerel bir WebSocket istemcisi veya sunucusu içermez. Birkaç topluluk eklentisi mevcuttur (GitHub'da “Indy WebSocket” araması yapın) ancak yazıldığı tarihte hiçbiri resmi IndyProject dağıtımının parçası değildir. Doğrudan Indy üzerine bir WebSocket oluşturursanız, esasen framer'ı kendiniz yazmış olursunuz. Ücretsiz, kutuda gelir.

TMS FNC WX (eski adıyla TMS WEB Core / FNC WebSocket)

TMS Software, FNC ailesinin bir parçası olarak çapraz çerçeveli bir WebSocket bileşeni (TTMSFNCWebSocketClient ve TMS XData / TMS Sparkle aracılığıyla bir sunucu tarafı) sunar. VCL, FMX, LCL ve TMS WEB Core üzerinde çalışır. İstemci tarafı sağlamdır; sunucu tarafı öncelikle bu ürünlerin bir özelliği olarak TMS XData / Sparkle yığını aracılığıyla sunulur. Ticari, geliştirici başına abonelik fiyatlandırması ile. Delphi 10.x ve daha yenisi.

mORMot 2

Synopse (Arnaud Bouchez) tarafından açık kaynaklı tam yığın çerçeve. SOA/ORM/REST altyapısıyla sıkı bir şekilde entegre edilmiş bir WebSocket istemcisi ve sunucusu içerir. mORMot'un WebSocket'i olgun, hızlıdır, ikili çerçeveleme ve mesaj başına deflate destekler ve yüksek ölçekli hizmetler için üretimde yaygın olarak kullanılır. Ödün, mORMot'un belirli görüşlere sahip olmasıdır — yalnızca WebSocket katmanını kullanmak mümkündür ancak doğal uyum, daha geniş çerçeveyi benimsediğinizde olur. Açık kaynak (MPL/GPL/LGPL üçlü lisans), Delphi 7 ve üzeri, ayrıca FreePascal.

Synapse

Klasik açık kaynaklı Pascal ağ kütüphanesi. Yazıldığı tarihte, standart Synapse bir WebSocket uygulaması içermez. Synapse üzerine inşa edilmiş bazı üçüncü taraf WebSocket katmanları mevcuttur ancak bunlar bakımsız veya tek yazarlı projelerdir. Ücretsiz.

Özellik matrisi

Özellik sgcWebSockets Indy (standart) TMS FNC WX mORMot 2 Synapse
WebSocket istemcisiEvetHayırEvetEvetHayır
WebSocket sunucusuEvetHayırTMS XData/Sparkle aracılığıylaEvetHayır
RFC 6455 (çerçeveler, maskeleme, kontrol çerçeveleri)Evetgeçerli değilEvetEvetgeçerli değil
Mesaj başına deflate (RFC 7692)Evetgeçerli değilKısmiEvetgeçerli değil
Alt protokoller / kanallar / broadcastEvet, yerleşikgeçerli değilManuelManuelgeçerli değil
Otomatik yeniden bağlanma / WatchDogEvetgeçerli değilManuelManuelgeçerli değil
TLS üzerinden WebSocket (wss://)Evet (OpenSSL, SChannel, BoringSSL)geçerli değilEvetEvetgeçerli değil
WebSocket-MQTT / STOMP / WAMP alt protokolleriEvetgeçerli değilHayırSınırlıgeçerli değil
HTTP/2, HTTP/3EvetHayırHayırSınırlıHayır
IOCP / epoll sunucu ölçeklendirmeEvet (Windows IOCP, Linux epoll)Bağlantı başına iş parçacığıAna bilgisayar sunucusuna bağlıEvetgeçerli değil
JavaScript istemci yansımasıEvet (JS kütüphanesiyle gelir)geçerli değilEvet (TMS WEB Core entegrasyonu)Manuelgeçerli değil
.NET portuEvet (aynı API)geçerli değilHayırHayırgeçerli değil
Delphi sürümleriD7 - D13D7 - D13D10.x - D13D7 - D13, FPCD7 - D13, FPC
LisansTicari (Free Edition mevcut)Ücretsiz, MIT tarzıTicariAçık kaynak üçlü lisansÜcretsiz
Sağlayıcı desteğiÜcretli sürümlere dahilTopluluk (IndyProject)Aboneliğe dahilSynopse aracılığıyla ticari destekTopluluk / tek yazar
Aktif bakımAylık sürümlerYavaş ama kararlıDüzenliÇok aktifYavaş

Senaryoya göre seçim

Senaryo 1: Üçüncü taraf bir WebSocket API'sine bağlanan VCL masaüstü uygulaması

wss://'ye bağlanan, JSON gönderen, JSON alan, bağlantı kesildiğinde yeniden bağlanan, TLS'yi işleyen bir istemciye ihtiyacınız var. En kısa yol sgcWebSockets'tir (bileşeni bırakın, URL'yi ayarlayın, WatchDog.Attempts'u ayarlayın, tamam) veya FNC paketini zaten lisanslıyorsanız TMS FNC WX'tir. Indy ve Synapse, framer'ı kendiniz yazmanızı gerektirir; bu da RFC 6455 uç durumlarını doğru yapmak için çok iş demektir.

Senaryo 2: Yüzlerce istemci için bir WebSocket sunucusu oluşturma

Kanallar ve broadcast ile HTTP ve WebSocket'i aynı bağlantı noktasında sunan bağımsız bir sunucu bileşeni istiyorsanız sgcWebSockets doğal seçimdir. mORMot çerçevesinin içinde zaten bir SOA/REST hizmeti oluşturuyorsanız mORMot 2 doğal seçimdir — WebSocket katmanı yığının geri kalanıyla entegre olur ve ölçekte savaş testinden geçmiştir.

Senaryo 3: On binlerce eşzamanlı bağlantı

Hem sgcWebSockets (Windows'ta IOCP, Linux'ta epoll) hem de mORMot 2 bu ölçekte üretimde dağıtılmıştır. Standart Indy'nin bağlantı başına iş parçacığı modelinin, önemli mimari çalışma olmadan yetişmesi olası değildir. TMS FNC WX ölçeklendirmesi, seçilen ana bilgisayar sunucusuna (XData/Sparkle) bağlıdır.

Senaryo 4: Pascal tam yığın çerçevesinin içinde WebSocket (REST, ORM, SOA)

mORMot 2. mORMot tam da bunun içindir. Yalnızca WebSocket katmanını yalıtılmış olarak benimsemek mümkündür ancak en fazla değeri daha geniş çerçeveyi benimsediğinizde elde edersiniz.

Senaryo 5: Çapraz çerçeve istemcisi (VCL, FMX, LCL, TMS WEB Core)

TMS FNC WX tam da bu durum için tasarlanmıştır — dördünde de tek bir API. sgcWebSockets, VCL, FMX ve C++Builder'ın yanı sıra bir .NET portunu kapsar, ancak Lazarus/FPC'yi hedeflemez.

Senaryo 6: WebSocket'in yanı sıra MQTT, AMQP, WebRTC, HTTP/2, Yapay Zeka API'lerine ihtiyaç

sgcWebSockets, bu karşılaştırmada yukarıdakilerin tümünü tek bir ürün ve tek bir bileşen modeli altında sunan tek kütüphanedir. Projeniz “yalnızca bir WebSocket istemcisi”nden “tam bir gerçek zamanlı yığın”a doğru bir yörüngedeyse, erken birleştirmek genellikle birkaç kütüphaneyi sonradan birbirine yapıştırmaktan daha ucuzdur.

Senaryo 7: Sınırlı bütçe, yalnızca açık kaynak, hobi projesi

mORMot 2 (açık kaynak), size ücretsiz olarak ciddi bir WebSocket uygulaması sunar. sgcWebSockets'in Free Edition'ı ticari olmayan kullanım için bir seçenektir. Topluluk WebSocket eklentisiyle Indy teknik olarak mümkündür ancak ilgili RFC'leri kendiniz okumayı bekleyin.

Karar matrisi

En çok ne önemliÖnerilen seçim
Çalışan istemciye en hızlı ulaşma + sağlayıcı desteğisgcWebSockets
Açık kaynak tam yığın çerçevemORMot 2
Çapraz çerçeve (VCL/FMX/LCL/WEB Core)TMS FNC WX
En yüksek eşzamanlı bağlantı, ticarisgcWebSockets
En yüksek eşzamanlı bağlantı, açık kaynakmORMot 2
WebSocket + MQTT + HTTP/2 + WebRTC + Yapay Zeka'yı kapsayan tek ürünsgcWebSockets
Ücretsiz / taahhütsüz hobi projesimORMot 2 veya sgcWebSockets Free Edition
Zaten bir TMS XData / Sparkle projesinin içindeTMS FNC WX
Zaten bir mORMot projesinin içindemORMot 2

Karar vermeden önce kontrol listesi

Kapanış düşünceleri

2026'daki Delphi WebSocket ortamı ilk bakışta göründüğünden daha sağlıklıdır. Hızlı bir istemci için sgcWebSockets sizi dakikalar içinde çalışır hale getirir. Açık kaynaklı tam yığın bir proje için mORMot 2'yi geçmek zordur. Çapraz çerçeveli GUI istemcileri için TMS FNC WX doğal bir uyum sağlar. Standart Indy ve Synapse, klasik İnternet protokolleri için değerli olmaya devam eder ancak hiçbiri WebSocket'e sahip değildir. Doğru seçim, projenizin “tek uç nokta”dan “tam gerçek zamanlı platform”a uzanan yelpazede nerede durduğuna bağlıdır — hem bugünkü gereksiniminize hem de iki yıl içinde projenin nerede olmasını beklediğinize uyan kütüphaneyi seçin.