Web soketleri ve signalR arasındaki fark nedir?


cevap 1:

İlk olarak, her iki teknolojiyi ve hangisinin Microsoft ASP.NET geliştiricisi olarak seçileceğini tanımlayalım.WebSocket, HTTP protokolü üzerinden tam çift yönlü iletişim (İki yönlü tam çift yönlü iletişim kanalı) için bir protokoldür. Her zaman sunucu ve istemci arasında açık bir İşlem Kontrol Protokolü (TCP) bağlantısıdır. İstemci, sunucuya veri gönderebilir ve sunucu, verileri aynı kanal üzerinden istediği zaman istemciye geri döndürebilir. Tüm tarayıcıların web soketlerini desteklemediğini unutmayın.

WebSockets kullanmanın avantajları:

  • Web için tam çift yönlü iletişim modeli sağlayın. Artırılmış istemci ve sunucu verimliliği. Kullanımı kolay. Web üzerinden tam çift yönlü bağlantı açın. HTTP'den daha hızlı. HTTP'nin yerini alır, TCP kullanır.

WebSockets kullanmanın dezavantajları:

  • Tarayıcı tam HTML5 şikayeti olmalıdır (WebSockets için destek tarayıcılarını kontrol edin) .Belirli bir bağlantı için istemci ve sunucu arasındaki iletişim protokolünü devralır.

SignalR, canlı kullanıcı etkileşimi veya gerçek zamanlı veri güncellemeleri gerektiren web uygulamaları oluşturmak için açık kaynaklı bir .NET kütüphanesidir. Örnek olarak sosyal uygulamalar, çok kullanıcılı oyunlar, iş birliği ve haberler, hava durumu veya finansal güncelleme uygulamaları verilebilir. Bunlara genellikle gerçek zamanlı uygulamalar denir.

SignalR, gerçek zamanlı uygulamalar oluşturma sürecini basitleştirir. İstemci-sunucu bağlantılarını yönetmeyi ve SignalR Hub'dan istemcilere içerik güncellemelerini aktarmayı kolaylaştırmak için bir ASP.NET Site sunucusu kitaplığı ve bir JavaScript istemci kitaplığı içerir. Gerçek zamanlı işlevsellik kazanmak için SignalR kütüphanesini mevcut bir ASP.NET uygulamasına ekleyebilirsiniz.

Ağ oluşturma açısından Hub, birden çok istemcinin bir Ethernet bağlantısını paylaşmasına izin veren bir ağ aygıtıdır. Artık bu konsept SignalR Hub işlevselliğini anlamayı kolaylaştırıyor. Hub, WebSocket bağlantısı üzerinden çok noktaya yayın işlevi sunar. İstemcilerden herhangi biri Hub'a mesaj gönderdiğinde, mesajı bağlı tüm istemcilere yayınlar ve aralarında Client-Hub Bağlantısı adı verilen bir bağlantı kurar.

Ben bir Microsoft ASP.NET Geliştirici, hangisini seçmek için?

  1. SignalR kullanmak, uygulamanız gereken ekstra işlevselliklerin çoğunun sizin için zaten yapılmış olduğu anlamına gelir. En önemlisi, bu, eski istemciler için ayrı bir kod yolu oluşturma konusunda endişelenmenize gerek kalmadan WebSocket uygulamasından yararlanmak için uygulamanızı kodlayabileceğiniz anlamına gelir. SignalR ayrıca sizi WebSocket güncellemeleri hakkında endişelenmenize gerek kalmaz, çünkü SignalR, temel aktarımdaki değişiklikleri destekleyecek şekilde güncellenmeye devam eder ve uygulamanıza WebSocket sürümleri arasında tutarlı bir arabirim sağlar. SignalR, diğer aktarımlara geri dönüş ve WebSocket uygulamalarındaki güncellemeler için uygulamanızı gözden geçirme gibi kendiniz yazmanız gereken tüm işlevleri sağlar. Web Tarayıcıları için destek tarayıcılarını kontrol edin).

Referanslar:

  • SignalR ile Gerçek Zamanlı Uzun Süreli Bağlantılara Sahip SignalR ile Gerçek Zamanlı Web İletişimine Giriş SignalR kullanarak Özel Sohbet Uygulaması Oluşturma.

cevap 2:

SignalR, gerçek zamanlı web uygulaması geliştirmeyi basitleştirmek için HTTP aktarımlarına göre bir soyutlamadır. Tarayıcı tarafından destekleniyorsa Web Soketlerini kullanmaya çalışacak, ancak Scott Hanselman'ın burada açıkladığı gibi zarif bir şekilde diğer taşımalara geri dönecek: SignalR ve Web Sockets

Başka bir deyişle, uygun soru SignalR ve Web Sockets arasındaki farktan ziyade birbiriyle nasıl ilişkilidir. Kısa cevap, SignalR'ın tarayıcı tarafından destekleniyorsa Web Soketleri kullanmasıdır.


cevap 3:

SignalR, sunucu ile istemci (tarayıcılar) arasında yoklama olmadan gerçek zamanlı olarak iletişim kurmak için bir çerçevedir (gönderilecek veri olup olmadığını sormaya devam edin). Web soketi, web soketi kullanılabilir olduğunda SignalR'de kullanılacak ana protokoldür. Web soketi yoksa, SignalR verileri sunucudan istemciye özel olarak aktarmak için farklı bir yol kullanır.