.NET WebSocket kütüphaneleri — karşılaştırma kılavuzu

2026'da .NET geliştiricilerine sunulan WebSocket kütüphanelerinin tarafsız ve kaynak gösterimli bir incelemesi: sgcWebSockets .NET, System.Net.WebSockets, ASP.NET Core SignalR, WebSocket-Sharp, Fleck ve Watson WebSocket. Her özellik iddiası, projenin kendi belgelerine bağlantı verir.

Aralarından seçim yapabileceğiniz altı kütüphane

Her kütüphanenin resmi belgelere veya depoya bağlantı içeren tek paragraflık özeti.

System.Net.WebSockets

Microsoft · MIT (.NET'in parçası)

.NET'in kendisine yerleşik düşük düzeyli WebSocket API'si. İstemciler için ClientWebSocket ve ASP.NET Core, Kestrel ve HttpListener tarafından kullanılan soyut bir sunucu WebSocket sınıfı sağlar. RFC 6455 çerçeveleme ve per-message-deflate (WebSocketDeflateOptions) birinci sınıf özelliklerdir.

Resmi sayfa

ASP.NET Core SignalR

Microsoft · MIT (ASP.NET Core'un parçası)

Microsoft'un üst düzey gerçek zamanlı çerçevesi. WebSocket, Server-Sent Events ve Long Polling üzerine (bu yedekleme sırasıyla) kurulmuştur; ham çerçeveler yerine bir hub RPC API'si sunar. JSON veya MessagePack hub protokolleri; Azure SignalR Service veya bir Redis arka düzlemi aracılığıyla ölçeklenir.

Resmi sayfa

WebSocket-Sharp

sta.blockhead · MIT

Uzun süredir devam eden açık kaynaklı C# WebSocket istemcisi ve sunucusu. .NET Framework 3.5 ve sonrasını (ve Mono'yu) hedefler, RFC 6455'i per-message-deflate ile uygular (context takeover yok). GitHub deposunda etiketlenmiş sürüm yoktur. Kullanıcılar genellikle en son master dalını alır veya bir commit özetine sabitler.

Resmi sayfa

Fleck

Jason Staten / topluluk · MIT

HttpListener veya HTTP.SYS'e bağımlı olmayan, yalnızca sunucu olan C# WebSocket kütüphanesi. Ham bir soket üzerinden dinler. İstemci tarafı, HTTP sunucusu ve X509 sertifika yolu dışında yerleşik TLS sonlandırması yoktur. En son etiketlenen sürüm Ekim 2016'dan 0.14.0'dır.

Resmi sayfa

Watson WebSocket

Joel Christner · MIT

Olay tabanlı bir API'ye sahip asenkron C# WebSocket istemcisi ve sunucusu. .NET Framework 4.8 ve .NET 7.0'ı hedefler. Depo, Watson Webserver'a entegre edildiği notuyla Mayıs 2024'te arşivlendi.

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 .NET System.Net.WebSockets ASP.NET Core SignalR WebSocket-Sharp Fleck Watson WebSocket
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 MIT (.NET'in parçası) MIT (ASP.NET Core'un parçası) MIT MIT MIT
Belgelenmiş yerel destek Yerel olarak sağlanmaz ~ Kısmi / eklenti aracılığıyla / doğrulanmamış

sgcWebSockets .NET'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.

System.Net.WebSockets üzerinden geçiş

System.Net.WebSockets size hat protokolünü verir; sgcWebSockets .NET ise üzerine MQTT / AMQP / STOMP / WAMP alt protokolleri, HTTP/2, otomatik yeniden bağlanma, watchdog, AI/LLM ve borsa API istemcileri ile WebRTC sunucu parçalarını ekler. ClientWebSocket etrafına ince bir sarmalayıcı yazdıysanız, geçiş çoğunlukla bir yeniden adlandırma ve olay işleyici aktarımıdır.

ASP.NET Core SignalR üzerinden geçiş

SignalR, WebSocket üzerinden kendi çerçeveleme protokolünü konuşur. sgcWebSockets, SignalR istemci hat protokolünü (TsgcWSAPI_SignalR ve TsgcWSAPI_SignalRCore) uygular, böylece sgcWebSockets ile oluşturulmuş bir Delphi veya .NET istemcisi mevcut bir ASP.NET Core SignalR sunucusuyla konuşabilir. Tam bir SignalR arka ucunu ham WebSocket'e taşıyorsanız, hub metodu dağıtımını kendi mesaj zarfınız olarak yeniden tasarlamayı bekleyin.

WebSocket-Sharp üzerinden geçiş

WebSocket-Sharp'ın WebSocket istemcisi ve WebSocketServer bileşeni, sgcWebSockets'in TsgcWebSocketClient ve TsgcWebSocketServer bileşenleriyle yakından eşleşir. Olay adları farklıdır (OnMessage her ikisinde de vardır; OnError ve OnClose benzer imzalara sahiptir). Alt protokoller (MQTT / AMQP / STOMP / WAMP) yalnızca sgcWebSockets'e özgüdür.

Fleck üzerinden geçiş

Fleck yalnızca sunucudur. Uygulamanızda hem bir Fleck sunucusu hem de ayrı bir istemci kütüphanesi varsa, sgcWebSockets .NET her ikisini birleştirir. Fleck'in işleyici tabanlı API'si (WebSocketServer.Start(socket => ...)), sgcWebSockets'in OnMessage / OnConnect işleyicilerine sahip olay tabanlı TsgcWebSocketServer bileşeniyle eşleşir.

Watson WebSocket üzerinden geçiş

Watson istemci/sunucu olay yüzeyi (MessageReceived, ClientConnected, ClientDisconnected), sgcWebSockets'in OnMessage / OnConnect / OnDisconnect olaylarıyla temiz bir şekilde eşleşir. Alt protokoller ve AI/LLM API istemcileri yalnızca sgcWebSockets'e özgüdür.

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 — .NET özellik matrisihttps://www.esegece.com/products/websockets/features/feature-matrix-net/
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
System.Net.WebSockets — ad alanı belgelerihttps://learn.microsoft.com/en-us/dotnet/api/system.net.websockets
ClientWebSocket — .NET API referansıhttps://learn.microsoft.com/en-us/dotnet/api/system.net.websockets.clientwebsocket
WebSocketDeflateOptions — .NET per-message-deflate desteğihttps://learn.microsoft.com/en-us/dotnet/api/system.net.websockets.websocketdeflateoptions
ASP.NET Core SignalR — genel bakışhttps://learn.microsoft.com/en-us/aspnet/core/signalr/introduction
SignalR deposu (dotnet/aspnetcore)https://github.com/dotnet/aspnetcore
WebSocket-Sharp — GitHub deposuhttps://github.com/sta/websocket-sharp
Fleck — GitHub deposuhttps://github.com/statianzo/Fleck
Fleck — sürümler (2016'da 0.14.0)https://github.com/statianzo/Fleck/releases
Watson WebSocket — GitHub deposu (arşivlenmiş)https://github.com/jchristn/WatsonWebsocket

sgcWebSockets .NET'i deneyin

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