sgcWebSockets 2026.8: QUIC, HTTP/3, Statik OpenSSL ve TLS Elden Geçirmesi | eSeGeCe Blog

sgcWebSockets 2026.8: QUIC, HTTP/3, Statik OpenSSL ve TLS Elden Geçirmesi

· Sürümler

sgcWebSockets 2026.8, yılın en büyük sürümü. Dört yeni taşıma bileşeni var, hem istemci hem de sunucu tarafında QUIC ve HTTP/3 geliyor, OpenSSL artık çalıştırılabilir dosyanızın içine bağlanabiliyor, böylece bir TLS uygulaması tek bir DLL olmadan dağıtılıyor, ve sgcHTML otuzdan fazla bileşen kazanıyor, bir WebBroker ve DataSnap dağıtıcısı ediniyor ve telefon ekranına uyum sağlıyor.

Alt tarafta, SChannel TLS katmanı parçalarına ayrıldı ve yeniden inşa edildi. Windows TLS yığınını kullanıyorsanız, kurmanız gereken sürüm bu: TLSOptions.Version sessizce yok sayılıyordu, iptal edilmiş bir sertifika kabul ediliyordu, bir TLS 1.3 bağlantısı hiçbir zaman tamamlanmıyordu ve bir yeniden anlaşma sertifikayı hiçbir denetim yapmadan değiştiriyordu. Bunların hepsi düzeltildi, ayrıca iptal denetimi, bir sürüm alt sınırı ve sunucuda istemci sertifikası doğrulaması artık kullanılabilir durumda. Bu yazının geri kalanı rehberli bir tur, ve her bölüm özelliği ayrıntılı olarak anlatan makaleye bağlantı veriyor.

QUIC ve HTTP/3

Dört yeni bileşen QUIC (RFC 9000) ve HTTP/3 (RFC 9114) desteğini Delphi ve C++ Builder'a getiriyor: TsgcQUICClient, TsgcQUICServer, TsgcHTTP3Client ve TsgcHTTP3Server. Bunlar yerel OpenSSL 3.5 QUIC motoru üzerinde çalışır, yani dağıtılacak üçüncü taraf bir yığın yoktur, ve el sıkışmanın içine katlanmış TLS 1.3, hat başı tıkanması olmayan çoğullanmış akışlar, 0-RTT devam ettirme ve istemci ağ değiştirdiğinde bağlantı göçü elde edersiniz.

uses
  sgcQUIC_Client;

var
  oClient: TsgcQUICClient;
begin
  oClient := TsgcQUICClient.Create(nil);
  oClient.Host := 'www.example.com';
  oClient.Port := 443;
  oClient.OnQUICConnect    := OnQUICConnect;
  oClient.OnQUICStreamData := OnQUICStreamData;

  oClient.Active := True;          // TLS 1.3 handshake in a single flight
  oClient.WriteData('ping');       // send bytes on a QUIC stream
end;

HTTP/3 istemcisi her HTTP fiilini konuşur, QPACK başlık sıkıştırması yapar, bloklayan ya da eşzamansız biçimde çalışır, bir HTTP/3 uç noktasını Alt-Svc üzerinden keşfeder ve sunucu göndermelerini işler.

uses
  sgcHTTP3_Client;

var
  oClient: TsgcHTTP3Client;
  vBody: string;
begin
  oClient := TsgcHTTP3Client.Create(nil);
  oClient.OnResponse := OnResponse;
  oClient.OnAltSvc   := OnAltSvc;

  oClient.Connect('www.example.com', 443);
  vBody := oClient.Get('https://www.example.com/');
end;

Her ikisi de sgcWebSockets Enterprise ile birlikte sgcQUIC paketini gerektirir. Daha fazlası: QUIC İstemci ve Sunucu Bileşenleri ve HTTP/3 İstemci ve Sunucu Bileşenleri.

Çalıştırılabilir dosyanın içinde OpenSSL

libcrypto ve libssl dosyalarını uygulamanın yanında dağıtmak, bir TLS istemcisi yayınlamanın her zaman en keyifsiz kısmı olmuştur. 2026.8 ile birlikte kütüphane OpenSSL 3.5.7 sürümünü statik olarak bağlayabiliyor: projenizin uses bölümüne tek bir birim ekleyin, DLL'ler ortadan kalksın. Birimi kaldırın, DLL'ler tam olarak eskisi gibi yeniden yüklensin, yani tercih her iki yönde de tek satırlık bir değişiklik.

uses
  sgcWebSocket, sgcWebSocket_Classes,
  sgcIdSSLOpenSSL_Static;

Delphi XE2 sürümünden itibaren istemcileri ve sunucuları, 32 ve 64 bit olarak kapsar. Daha fazlası: Statik OpenSSL Bağlama, Artık DLL Yok.

sgcHTML: WebBroker, DataSnap ve otuz yeni bileşen

sgcHTML sayfaları artık sgcWebSockets sunucusuna bağlı değil. Yeni bir dağıtıcı bileşen, bu sayfaları herhangi bir WebBroker uygulamasından (bağımsız, ISAPI, Apache ya da CGI) ve DataSnap sunucularından sunar, orada köprü REST uç noktalarınızla aynı bağlantı noktası üzerinde canlı WebSocket güncellemeleri ekler.

uses
  Web.HTTPApp, sgcHTMX_Engine_Server_WebBroker, sgcHTMX_Router;

// Any WebBroker host: the engine's Owner is the web module,
// so the standard WebBroker dispatcher calls it automatically
FEngine := TsgcHTMX_Engine_Server_WebBroker.Create(WebModule1);
FEngine.Router := FRouter;   // your htmx routes and the page

Bileşen kümesi bu sürümde epeyce büyüdü, ve her şey hâlâ sunucuda çiziliyor, yüklenecek istemci tarafı bir kütüphane yok:

Sayfalar artık ekran boyutuna da uyum sağlıyor. Telefonda yan menü bir düğmenin arkasına katlanır ve içerik tam genişliği kullanır, masaüstünde hiçbir şey değişmez. Önceki sabit yerleşim için yeni Responsive özelliğini False yapın. Daha fazlası: WebBroker ve DataSnap Üzerinde sgcHTML.

SChannel TLS elden geçirmesi

SChannel, Windows TLS yığınıdır, hiç OpenSSL dağıtmadan elde ettiğiniz yığın. Dışarıdan görünmeyen bir dizi sorunu vardı, ki bu sorunların en kötü türüdür. TLSOptions.Version Windows 11 ve Windows Server 2022 üzerinde hiç okunmuyordu, Windows 10 üzerinde TLS 1.3 istemek size sessizce TLS 1.2 veriyordu, ve sürümü tanımsız bırakmak SSL 3.0, TLS 1.0 ve TLS 1.1 desteğini yeniden açıyordu. İptal edilmiş bir sunucu sertifikası, VerifyCertificate True olarak ayarlanmış olsa bile kabul ediliyordu, çünkü zincir herhangi bir iptal durumu sorulmadan kuruluyordu. Bir yeniden anlaşmanın ardından yeni bir sertifika, zincir ya da makine adı denetlenmeden kabul ediliyordu. Indy'nin yan tarafta açtığı bağlantılar, yani başka bir makineye HTTP yönlendirmesi ya da bir FTP veri kanalı, boş bir yapılandırmayla geri dönüyordu, dolayısıyla doğrulama kapalı çalışıyorlardı ve bunu hiçbir şey bildirmiyordu.

Bunların tümü düzeltildi, anlaşılan sürüm artık el sıkışma tamamlandığında denetleniyor, ve bu çalışmayla birlikte üç yeni seçenek grubu geldi: iptal denetimi, bir sürüm alt sınırı ve Windows güçlü kriptografisi.

// client
oClient.TLSOptions.Version     := tls1_3;   // highest version to use
oClient.TLSOptions.SChannel_Options.VersionMin := tls1_2;   // lowest accepted
oClient.TLSOptions.SChannel_Options.UseStrongCrypto := True;
oClient.TLSOptions.SChannel_Options.Revocation.Check   := scrcChainExcludeRoot;
oClient.TLSOptions.SChannel_Options.Revocation.Timeout := 5000;  // ms

// or all of it in one line
oClient.TLSOptions.Preset := tlspSecureDefaults;

İptal varsayılanları bilinçli olarak hoşgörülüdür: IgnoreRevocationOffline ve IgnoreNoRevocationCheck True'dur, böylece denetimi açmak eskiden çalışan bir bağlantıyı bozamaz, ve Timeout değeri CRL ve OCSP getirme işlemini sınırlar, böylece erişilemeyen bir yanıtlayıcı el sıkışmayı askıda bırakamaz. Gerçekten iptal edilmiş bir sertifika her zaman reddedilir.

Sunucu tarafında SChannel artık istemciden bir sertifika isteyebiliyor, ki bunu daha önce hiç yapmıyordu. İstemci sertifikası, bir istemcinin sunucu sertifikasına uyguladığı denetimlerin aynısından geçer, yani zincir, tarihler ve OnSChannelVerifyPeer olayı, makine adı denetimi olmadan.

oServer.SSLOptions.VerifyCertificate := True;
oServer.SSLOptions.VerifyCertificate_Options.FailIfNoCertificate := True;

İki düzeltme daha buraya ait. SChannel kullanan bir istemci, karşı taraf bağlantıyı bir kapatma bildirimi olmadan düşürdüğünde (bir vekil sunucu yeniden başladığında olduğu gibi) bağlantının gittiğini hiç fark etmiyordu, dolayısıyla OnDisconnect hiç tetiklenmiyor ve WatchDog hiç çalışmıyordu. Ayrıca bir TLS 1.3 bağlantısı hiçbir zaman tamamlanmıyordu, çünkü sunucunun el sıkışmanın hemen ardından gönderdiği oturum bileti, istemciyi sunucunun zaten göndermiş olduğu veriyi beklerken bırakıyordu. El sıkışma artık yalnızca TCP bağlanmasını kapsamak yerine ConnectTimeout değerine uyuyor, ve kapatmadan önce bir kapatma bildirimi gönderiliyor, SChannel, Apple ve Android bağlantılarının hepsinde.

Sunucu sınırları ve IOCP / EPOLL motorları

Sunucular, eskiden sınırsız olan bir dizi sınır kazandı. WebSocket sunucusu artık sınırsız sayı yerine varsayılan olarak 10.000 eşzamanlı bağlantı kabul ediyor, ve bir istemcinin saniyede kaç denetim çerçevesi gönderebileceğini sınırlıyor (100), böylece ping yağmuruna tutulamıyor. HTTP/2 sunucusu MaxRequestSize özelliğini, DTLS bileşeni ise MaxConnections, HandshakeTimeout ve IdleTimeout özelliklerini kazandı, böylece uydurma adreslerden gelen tek paketlik bir sel artık sunucunun belleğini doldurmuyor. Bunların her biri yükseltilebilir ya da önceki davranış için 0 yapılabilir.

Yüksek başarımlı motorlar uzun bir onarım listesi aldı: çeşitli temizlik yollarında bellek ve tanıtıcı sızıntıları ile çökmeler, kabul edilir edilmez hattı düşüren bir istemci, sunucu temizliğin ortasında durdurulduğunda iki kez serbest bırakılan bir bağlantı, çalışan iş parçacıkları etkinken serbest bırakma sonrası kullanım, ve işlenen her iletide kaybedilen bir tampon. HTTP keep-alive hiç çalışmıyordu, dolayısıyla bağlantı her istekten sonra kapatılıyor ve sunucu TIME_WAIT durumundaki soketlerle doluyordu. Linux üzerinde her HTTP isteği, ayrıştırılmış isteğin parçalarını sızdırıyordu, ve tüm çalışanlar tek bir bağlantı kuyruğunu paylaşıyordu, bu yüzden bir ya da iki iş parçacığı işin neredeyse tamamını yapıyordu.

İki yeni seçenek işi tamamlıyor, ikisi de varsayılan olarak kapalı: keep-alive yoklamaları ve bir boşta kalma zaman aşımı, böylece yarı açık soketler artık birikmiyor, ve yeni bağlantıların çalışan iş parçacıklarına sırayla dağıtılması.

Server.IOHandlerOptions.IOHandlerType := iohEPOLL;
Server.IOHandlerOptions.EPOLL.TCPKeepAlive.Enabled  := True;
Server.IOHandlerOptions.EPOLL.TCPKeepAlive.Time     := 60;  // seconds idle before probing
Server.IOHandlerOptions.EPOLL.TCPKeepAlive.Interval := 10;  // seconds between probes
Server.IOHandlerOptions.KeepAliveTimeout            := 120; // seconds

Daha fazlası: IOCP ve EPOLL Sunucuları için TCPKeepAlive ve KeepAliveTimeout. Motor düzeltmelerinin birçoğunun dayandığı yamayı katkı olarak sunduğu için Andrea'ya teşekkürler.

Protokoller: STOMP, MQTT, AMQP ve HTTP/2

En çok çalışma STOMP tarafında yapıldı. Nazik bir Disconnect artık aracı bunu bir alındı bildirimiyle onaylayana kadar bekliyor, böylece kapanırken hiçbir şey kaybolmuyor. İletiler, gövdeyi okumak için content-length kullanılarak, aracının gönderdiği şekliyle tam olarak teslim ediliyor, dolayısıyla satır sonları ve ikili sıfırlar içerebiliyor. Bir WebSocket iletisine birkaç tane paketlenmiş çerçevelerin hepsi işleniyor, iki iletiye bölünmüş bir çerçeve yeniden birleştiriliyor, ve ikili çerçeveler artık yok sayılmıyor. ACK ve NACK, anlaşılan sürümün gerektirdiği başlıkları gönderiyor, ve kalp atışları yalnızca sunucu bağlantıyı onayladıktan sonra başlıyor.

oSTOMP.DisconnectTimeout := 10000;   // ms to wait for the receipt, 0 = return at once
oSTOMP.ACKEx(vMessageId, vSubscriptionId);
ShowMessage('STOMP ' + oSTOMP.NegotiatedVersion);

MQTT artık aracıların reddettiği paketleri oluşturmuyor, yani kullanıcı adı olup parolası olmayan bir CONNECT ya da daha büyük bir özellik bloğu taşıyan bir MQTT 5 paketi, ve MQTT 5 istemcisi bir paketin sonunu aşarak okumayı bıraktı: kesilmiş bir paket, eskiden bellekte ardından ne geliyorsa onu özellik değerleri olarak uygulamaya veriyordu. Artık aracının söylediğine uyuyor, CONNACK içinde dönen Keep Alive değerinden yalnızca bir Topic Alias ile gelen bir iletiye kadar. QoS 2 yayımlama yolu doğru takip onayını gönderiyor, aracının reddettiği bir iletiyi sonsuza kadar yeniden denemek yerine atıyor, ve makul bir zamanlamayla yeniden deniyor.

AMQP 1.0 istemcisi artık kötü niyetli bir aracıya karşı korunuyor: küçük parçalar hâlinde gelen çerçeveler, geçersiz bir başlık boyutu, aşırı derin iç içe geçmiş iletiler, çok büyük miktarda belleğe açılmak üzere hazırlanmış küçük bir ileti. AMQP 0.9.1 ve 1.0 için varsayılan en büyük çerçeve boyutu, pratikte sınırsız yerine 1 MB oldu. HTTP/2 başlık sıkıştırması, özel olarak hazırlanmış başlıklara karşı korunuyor, bağlantı hiç açılmamış bir akış için gelen bir DATA çerçevesini, bir PRIORITY çerçevesi selini, akış numarası yeniden kullanımını ve boş devam çerçevesi sellerini reddediyor, ve sunucu satır sonu ya da null içeren başlık adlarını ve değerlerini reddediyor, ki bu istek kaçakçılığını önlüyor. Sıfırlanan akışlardan kaynaklanan bellek büyümesi ve yaklaşık 100 istekten sonra ortaya çıkan "CONCURRENT STREAM limit has been exceeded" hatasının ikisi de düzeltildi.

MCP sunucusu

Araçlar artık girdileri için eksiksiz bir JSON Schema sunabiliyor, öğeleriyle birlikte diziler, sabit listeleri, tamsayı ve null olabilen türler, iç içe nesneler ve additionalProperties bildirebiliyor, ki bazı MCP istemcileri bunu gerektirir ve aksi hâlde reddederdi. Sunucu ayrıca 2025-11-25 protokolünün üstverisini de sunuyor: readOnlyHint ek açıklaması ve ek açıklama başlığı, araç simgeleri, sunucu başlığı, web sitesi ve simgeleri, ve tools/list görev desteği bildirimi.

Zaten bir tane çalıştırıyorsanız iki düzeltme önemli. Sunucu, bir istemcinin GET ile açtığı olay akışına kendi iç bağlantı kimliğini bir ileti olarak yazıyordu, VS Code GitHub Copilot gibi istemciler bunu "Failed to parse message" olarak bildiriyordu. Ayrıca kaynak denetimi yalnızca istek, tarayıcıların hiç göndermediği bir başlık taşıdığında çalışıyordu, dolayısıyla engellemesi gereken durum için hiç çalışmıyordu: kullanıcının ziyaret ettiği bir web sayfası, kendi makinesindeki bir MCP sunucusuna erişebilir, araçlarını listeleyebilir, çalıştırabilir ve sonuçları okuyabilirdi. Kaynak artık her istekte denetleniyor, tarayıcının ön denetimi de dâhil.

MCPServer.MCPOptions.HTTPStreamable.AllowedOrigins.Add('https://*.example.com');

Kripto borsaları

Bunun büyük bölümünü iki müşteri bildirimi tetikledi. Bir HTTP hata durumuyla başarısız olan bir istek artık sunucunun yanıtladığı başlıkları bildiriyor, böylece bir 429 üzerindeki Retry-After ya da borsaların döndürdüğü hız sınırı sayaçları nihayet okunabiliyor. Hazır API istemcileri EsgcHTTPAPIProtocolException fırlatır, ki bu daha önce fırlatılan istisnadan türer, dolayısıyla mevcut işleyicileriniz çalışmaya devam eder.

try
  vResponse := oBinance.GetAggregateTrades('BTCUSDT');
except
  on E: EsgcHTTPAPIProtocolException do
  begin
    if E.ErrorCode = 429 then
      Sleep(E.RetryAfterMs);
    vWeight := E.GetHeader('X-MBX-USED-WEIGHT-1M');
    // E.ResponseHeaders holds the complete list
  end;
end;

Her borsa istemcisi, yeniden bağlandıktan sonra tüm abonelik listesini tek bir patlamada, birkaç milisaniyelik bir bağlantı üzerinden yeniden gönderiyordu, dolayısıyla saniyedeki ileti sayısını sınırlayan bir borsa bağlantıyı hemen kapatıyor ve döngü tekrarlanıyordu. Yeniden gönderim artık hızı ayarlanarak yapılıyor, ve Binance üzerinde birleştirilmiş çerçeveler olarak gönderiliyor. Ayrıca gönderdiğiniz iletiler için yeni bir istemci tarafı kısıtlayıcı da var.

oBinance.Throttle.Enabled     := True;
oBinance.Throttle.MaxMessages := 4;      // per window
oBinance.Throttle.IntervalMs  := 1000;
// paced reconnect replay is on by default:
// oBinance.Throttle.PaceResubscribe := False;  restores the old burst

// subscribe a whole watchlist with ONE frame
oBinance.SubscribeStreams(['btcusdt@trade', 'ethusdt@trade', 'bnbusdt@trade']);

Binance, Spot kullanıcı veri akışının üzerine kurulduğu listenKey uç noktalarını kullanımdan kaldırdı, dolayısıyla hesap, emir ve bakiye güncellemeleri artık Binance WebSocket API üzerinden geliyor, bileşenin kendiliğinden açtığı ve bir yeniden bağlanmadan sonra yenilediği ikinci bir bağlantı üzerinden. Olaylar aynı biçimde geliyor, yani işleyicileriniz çalışmaya devam ediyor, ancak yeni abonelik imzalı: artık Binance.ApiKey ile birlikte Binance.ApiSecret de ayarlanmalı. Binance.us ve Futures hâlâ bir listenKey kullanıyor. USD-M Futures piyasa verileri artık iki adresten sunuluyor, yeni Binance.FuturesStreamEndpoint özelliğiyle seçiliyor (varsayılan olarak bfsePublic, toplu işlemler, işaret fiyatı, kline ve tasfiye akışları için bfseMarket).

Ayrıca düzeltildi: OKX fiyatları ve boyutları gönderilmeden önce beş ondalığa yuvarlanıyordu, dolayısıyla daha ince adımlı bir enstrümandaki bir emir istediğiniz emir olmuyordu, ve 0,00001 altındaki bir değer sıfır olarak gönderiliyordu. OKX ve KuCoin keepalive işlemleri artık bir WebSocket ping yerine her borsanın gerektirdiği metin ping'ini gönderiyor, ve geri pong gelmediğinde yeniden bağlanıyor. Daha fazlası: Binance Hız Sınırları: Toplu Gönderim, Hız Ayarı ve Okunabilir 429'lar.

zlib 1.3.1 ve bir malzeme listesi

Birlikte gelen zlib 1.2.12 sürümünden 1.3.1 sürümüne taşındı, ki bu CVE-2022-37434 açığını, inflate içindeki bir yığın taşma okumasını giderir. Bağlanan nesneler Delphi 7'den Delphi 13'e kadar, 32 ve 64 bit olarak yeniden derlendi ve her derleyicide doğrulandı. Yan bir düzeltme: zlib nesneleri Delphi 10 Seattle 64 bit üzerinde hiç bağlanmıyordu, bu sürüm 32 bit nesneleri seçiyor ve derlenemiyordu.

Her kurulum artık ayrıca sbom.cdx.json dosyasını da kuruyor, kütüphanenin üzerine kurulduğu bileşenleri sürümleri ve lisanslarıyla listeleyen bir CycloneDX yazılım malzeme listesi. Enterprise ve All-Access, özelleştirilmiş Indy ile onun zlib sürümlerini belirtir, Core, Standard ve Professional ise Indy'nin Delphi ya da C++ Builder ile birlikte gelen sürüm olduğunu kaydeder. Kurulum derleme zamanında sürüm başına üretilir, dolayısıyla her zaman kurduğunuzla eşleşir. Daha fazlası: sgcWebSockets ve sgcOpenAPI'de zlib 1.3.1 ve sgcWebSockets artık kendi SBOM dosyasını kuruyor.

Güvenlik düzeltmeleri

TLS'in ötesinde, bu sürüm bir dizi açığı kapatıyor. Listeyi okuyun, ve bu bileşenlerden biri uygulamanızdaysa, yükseltin.

Gözden kaçması kolay bir tane daha: TLS seçeneklerinin çoğu, bir bileşenden diğerine kopyalanırken kayboluyordu. Yalnızca IO işleyicisi, ALPN protokolleri ve OpenSSL seçenekleri kopyalanıyordu, dolayısıyla sertifika dosyaları, parola, kök sertifika, TLS sürümü ve VerifyCertificate boş kalıyordu, ve bu şekilde kurulan bir bileşen hiçbir şeyi doğrulamıyor durumda kalıyordu.

Küçük eklemeler

Bu sürümün çevresinde yeni olanlar

Kütüphaneyle birlikte gelen iki parça bu ay kendi makalelerini aldı: REST sunucu bileşenleri, yani CORS, metrikler, sağlık uç noktaları, çok kiracılılık ve tek bir belirtim dosyasını yönlendirmeye, doğrulamaya, güvenliğe ve Swagger UI'a dönüştüren bir OpenAPI eklentisiyle REST API'ler için yapılmış bir HTTP sunucusu, ve .proto dosyalarını Delphi birimlerine dönüştüren kod üreteci sgcProtoBuf. Daha fazlası: TsgcHTTPRESTServer: Yeni REST Sunucu Bileşeni, REST Sunucusu + OpenAPI, Kullanıcılar, Çok Kiracılılık ve Metrikler ve sgcProtoBuf: .proto Dosyalarından Delphi Birimlerine.

.NET sürümü

sgcWebSockets .NET 2026.8, bu sürümün ortak yarısını taşıyor. SChannel çalışmasının tamamı orada, yani yok sayılan sürüm, klonlanan bağlantılarda kaybolan ayarlar, denetlenmeyen yeniden anlaşma, hiç tamamlanmayan TLS 1.3 bağlantısı, fark edilmeden düşen bağlantı, sınırsız el sıkışma ve başlangıç yarışı, ayrıca kapatmadan önceki kapatma bildirimi ve sunucuda istemci sertifikası doğrulaması. IOCP ve EPOLL düzeltmeleri, WebSocket el sıkışması ve çerçeve doğrulaması, MQTT, STOMP, AMQP ve HTTP/2 sağlamlaştırmaları, OAuth2, WebAuthn, MCP ve Files protokolü güvenlik düzeltmeleri, ve borsa değişiklikleri (Binance Spot kullanıcı veri akışı, hızı ayarlanmış yeniden bağlanma gönderimi, OKX ve KuCoin keepalive işlemleri) de dâhil. Alındı bildirimiyle birlikte gelen nazik STOMP Disconnect işlemi ve WebSocket sunucusundaki denetim çerçevesi sınırı da orada yeni.

Yükseltme

2026.8, mevcut 2026.x projeleri için doğrudan yerine geçen bir yükseltme, ancak derlemeden önce bilinmesi gereken iki şey var. Binance Spot kullanıcı veri akışı artık aboneliğini imzalıyor, dolayısıyla Binance.ApiKey yanında Binance.ApiSecret de ayarlanmalı. Ayrıca WebSocket sunucusu artık sınırsız sayı yerine varsayılan olarak 10.000 eşzamanlı bağlantı kabul ediyor, dolayısıyla bunun üzerinde çalışıyorsanız MaxConnections değerini yükseltin ya da 0 yapın.

Geri kalan her şey siz isteyene kadar kapalı: iptal denetimi, sürüm alt sınırı, güçlü kriptografi, istemci sertifikası doğrulaması, IOCP ve EPOLL motorlarında keep-alive, ileti kısıtlayıcı ve MCP izin verilen kaynaklar listesi, hepsi önceki davranışa göre varsayılıyor.

Etkin aboneliği olan müşteriler yeni yapıyı müşteri alanından ya da esegece.com/products/websockets/download adresinden indirebilir.

Sorularınız, geri bildiriminiz ya da geçiş yardımı mı gerekiyor? Bize ulaşın. Yanıtı, kodu yazan kişilerden alacaksınız.