ASP.NET Core'a genel bakış SignalR

SignalR nedir?

ASP.NET Core SignalR , uygulamalara gerçek zamanlı web işlevselliği eklemeyi kolaylaştıran açık kaynak bir kitaplıktır. Gerçek zamanlı web işlevselliği, sunucu tarafı kodunun istemcilere anında içerik göndermesini sağlar.

için SignalRiyi adaylar:

  • Sunucudan yüksek sıklıkta güncelleştirmeler gerektiren uygulamalar. Oyun, sosyal ağlar, oylama, açık artırma, haritalar ve GPS uygulamaları bunlara örnektir.
  • Panolar ve izleme uygulamaları. Şirket panoları, anlık satış güncelleştirmeleri veya seyahat uyarıları bunlara örnektir.
  • İş birliği uygulamaları. Beyaz tahta uygulamaları ve takım toplantısı yazılımları, iş birliği uygulamalarına örnektir.
  • Bildirim gerektiren uygulamalar. Sosyal ağlar, e-posta, sohbet, oyunlar, seyahat uyarıları ve diğer birçok uygulama, bildirimleri kullanır.

SignalR , sunucudan istemciye uzak yordam çağrıları (RPC) oluşturmaya yönelik bir API sağlar. RPC'ler sunucu tarafı .NET Core kodundan istemcilerde işlevleri çağırır. Her biri kendi istemci SDK'sına sahip çeşitli desteklenen platformlar vardır. Bu nedenle, RPC çağrısı tarafından çağrılan programlama dili değişir.

ASP.NET Core'un SignalR bazı özellikleri şunlardır:

  • Bağlantı yönetimini otomatik olarak işler.
  • Tüm bağlı istemcilere aynı anda ileti gönderir. Örneğin, bir sohbet odası.
  • İletileri belirli istemcilere veya istemci gruplarına gönderir.
  • Artan trafiği işlemek için ölçeklendirilir.
  • SignalR Hub Protokolü

Kaynak GitHub'daki bir SignalR depoda barındırılır.

Taşımalar

SignalR gerçek zamanlı iletişimi işlemek için aşağıdaki teknikleri destekler (düzgün geri dönüş sırasına göre):

  • WebSockets
  • Sunucu Tarafından Gönderilen Olaylar
  • Uzun Yoklama

SignalR otomatik olarak sunucu ve istemcinin özellikleri içinde en iyi aktarım yöntemini seçer.

Hub'lar

SignalR, istemciler ve sunucular arasında iletişim kurmak için hub'ları kullanır.

Hub, istemci ve sunucunun birbirleri üzerinde yöntemler çağırmasına olanak tanıyan üst düzey bir işlem hattıdır. SignalR dağıtımını makine sınırları arasında otomatik olarak işler ve istemcilerin sunucudaki yöntemleri çağırmasına olanak tanır ve bunun tersi de geçerlidir. Model bağlamayı etkinleştiren yöntemlere kesin türemiş parametreler geçirebilirsiniz. SignalRiki yerleşik hub protokolü sağlar: JSON tabanlı bir metin protokolü ve MessagePack tabanlı ikili protokol. MessagePack genellikle JSON ile karşılaştırıldığında daha küçük iletiler oluşturur. MessagePack protokol desteği sağlamak için eski tarayıcıların XHR düzey 2'yi desteklemesi gerekir.

Hub'lar, istemci tarafı yönteminin adını ve parametrelerini içeren iletiler göndererek istemci tarafı kodunu çağırır. Yöntem parametresi olarak gönderilen nesneler, yapılandırılmış protokol kullanılarak seri durumdan çıkarılır. İstemci, adı istemci tarafı kodundaki bir yöntemle eşleştirmeye çalışır. İstemci bir eşleşme bulduğunda yöntemini çağırır ve seri durumdan çıkarılmış parametre verilerini ona geçirir.

ECMAScript 6 'ı (ES6) desteklemeyen tarayıcılar

SignalR ES6'ya hedeflemektedir. ES6'yı desteklemeyen tarayıcılar için kitaplığı ES5'e çevirin. Daha fazla bilgi için bkz . ES6 ile Çalışmaya Başlama – Traceur ve Babel ile ES6'yı ES5'e Dönüştürme.

Ek kaynaklar