ASP.NET Core SignalR genel bakış

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

Scenario Examples
Sunucudan yüksek frekanslı güncelleştirmeler gerektiren uygulamalar Oyunlar, Sosyal ağlar, Oylama siteleri, Açık artırmalar, Haritalar, GPS
İzleme için panolar ve uygulamalar Şirket panoları, Anlık satış güncelleştirmeleri, Seyahat uyarıları
İşbirliğini destekleyen uygulamalar Whiteboard uygulamaları, Ekip toplantısı yazılımı
Bildirim gerektiren uygulamalar Sosyal ağlar, E-posta, Sohbet, Oyunlar, Seyahat uyarıları

Bu makale, ASP.NET Core uygulamalarınızda SignalR ile çalışmaya giriş niteliğindedir.

Özellikler ve kaynak kodu

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

ASP.NET Core için SignalR, geliştiricilere birçok özellik sunar:

  • Bağlantı yönetimini otomatik olarak işleme
  • Tüm bağlı istemcilere aynı anda ileti gönderme (örneğin, sohbet odası)
  • Belirli istemcilere veya istemci gruplarına ileti gönderme
  • Azure SignalR Service ve Redis backplane gibi seçeneklerle artan trafiği karşılayacak şekilde ölçeklendirin
  • Desteklenen senaryolar için kırpma ve yerel AOT derleme desteği
  • Hub yöntemlerinde polimorfik tür işlemeyi destekleme
  • ActivitySource hub sunucusu ve .NET istemcisi için SignalR ile dağıtılmış izlemeyi destekleme
  • Hub Protokolü ileSignalR çalışma

Kaynak, GitHub üzerindeki ASP.NET Core deposunda barındırılır.

Transports

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 sunucunun ve istemcinin özellikleri içinde en iyi aktarım yöntemini seçer. WebSockets genellikle en iyi performansı sağladığından tercih edilen aktarımdır.

Hubs

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

Hub, istemci ve sunucunun birbirinin üzerindeki yöntemleri çağırmak için kullandığı üst düzey bir işlem hattıdır. SignalR makina sınırları arasında dispatch işlemlerini otomatik olarak yönetir, böylece istemciler sunucudaki yöntemleri çağırabilir ve tersi. Yöntemlere güçlü tür tanımlı parametreler iletebilir ve model bağlamasını etkinleştirebilirsiniz.

SignalR iki yerleşik hub protokollerini destekler:

  • JSON tabanlı metin protokolü (varsayılan)
  • MessagePack tabanlı bir ikili protokol. MessagePack genellikle JSON ile karşılaştırıldığında daha küçük iletiler oluşturur. Daha fazla bilgi için bkz. SignalR için 'de MessagePack Hub Protokolü kullanma.

Hub'lar, istemci tarafı yönteminin adını ve parametrelerini içeren iletiler göndererek istemci tarafı kodunu çağırır. Yapılandırılmış protokol, yöntem parametresi olarak gönderilen nesneleri seri durumdan çıkartır. İstemci, adı istemci tarafı kodundaki bir yöntemle eşleştirmeye çalışır. İstemci bir eşleşme bulduğunda yöntemi çağırır ve deserialize edilmiş parametre verilerini geçirir.

SignalR nedir?

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

SignalR için iyi 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ğine dayalı 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 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 için SignalR'nin 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.
  • Azure SignalR Hizmeti ve Redis arka planı gibi seçeneklerle artan trafiği işlemek için ölçekleme yapılabilir.
  • Desteklenen senaryolar için kırpmayı ve yerel olarak önceden (AOT) derlemeyi destekler.
  • Hub yöntemlerinde polimorfik tür işlemeyi destekler.
  • ActivitySource hub sunucusu ve .NET istemcisi için SignalR ile dağıtılmış izlemeyi destekler.
  • SignalR Hub Protokolü

Kaynak, GitHub üzerindeki bir deposunda barındırılır.

Transports

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. WebSockets genellikle en iyi performansı sağladığından tercih edilen aktarımdır.

Hubs

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 makine sınırları arasında dağıtımı otomatik olarak yönetir, böylece istemciler sunucudaki yöntemleri çağırabilir ve sunucu da istemcilerdeki yöntemleri çağırabilir. Model bağlamayı etkinleştiren yöntemlere kesin türemiş parametreler geçirebilirsiniz. SignalR iki yerleşik hub protokollerini destekler: JSON tabanlı bir metin protokolü (varsayılan) ve MessagePack tabanlı ikili protokol. MessagePack genellikle JSON ile karşılaştırıldığında daha küçük iletiler oluşturur. Daha fazla bilgi için bkz. SignalR için 'de MessagePack Hub Protokolü kullanma.

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.

Ek kaynaklar

SignalR nedir?

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

SignalR için iyi 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ğine dayalı 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 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 için SignalR'nin 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 karşılamak üzere ölçeklenebilir.
  • SignalR Hub Protokolü

Kaynak, GitHub üzerindeki bir deposunda barındırılır.

Transports

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.

Hubs

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 makine sınırları arasında dağıtımı otomatik olarak yönetir, böylece istemciler sunucudaki yöntemleri çağırabilir ve sunucu da istemcilerdeki yöntemleri çağırabilir. 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'yı hedefliyor. 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