Yazılım Mimarileri ve Tasarım Desenleri Üzerine

Asp.NET Core – SignalR Serisi #8 – Clients Türleri ve Kullanılan Metotlar – Caller | All | Others

Merhaba,

SignalR Hub sınıfları, client ile server arasında eşzamanlı etkileşimi kurabilmek ve server’a bağlı olan client’lar arasında isteğe özel farklı davranışlar sergileyebilmek için Caller, All ve Others özelliklerini içermektedir. Bu içeriğimizde, bu özelliklerin davranışlarını detaylarıyla inceleyecek ve ardından genel olarak kullanılan metotları değerlendireceğiz.

Client Türleri
Davranışa göre client türleri yukarıda da bahsedildiği gibi Caller, All ve Others olmak üzere üçe ayrılır;

Caller
Sadece server’a bildirim gönderen client’la iletişim kurar.
    public class MyHub : Hub
    {
        public async Task SendCallerMessage(string message)
        {
            await Clients.Caller.SendAsync("receiveMessage", message);
        }
    }
All
Server’a bağlı olan tüm client’lara bildiri gönderir.
    public class MyHub : Hub
    {
        public async Task SendAllMessage(string message)
        {
            await Clients.All.SendAsync("receiveMessage", message);
        }
    }
Others
Server’a bildirim gönderen client hariç diğer tüm client’lara bildirim gönderir.
    public class MyHub : Hub
    {
        public async Task SendOthersMessage(string message)
        {
            await Clients.Others.SendAsync("receiveMessage", message);
        }
    }

İlgili propertylerin davranışlarını sergilemek için aşağıdaki görselleri inceleyebilirsiniz…

Caller All Others

İleti Gönderim Metodu(SendAsync)
İleti gönderim metodu yukarıdaki Caller, All ve Others özelliklerinden kullanılanın davranışlarına göre şekillenmekle birlikte sade ve sadece ‘SendAsync’den ibarettir.

SendAsync aşağıdaki varyasyonlar eşliğinde kullanılır;

Hub Clients Metotları
Hub üzerinden etkileşime geçilecek olan client’lar ile özelleştirilmiş davranışlar sergileyebilmek için kullanılan metotlardır.

‘User’ ve ‘Users’ metotlarını ileride SignalR ile Authentication ve Authorization konularını ele alırken inceleyeceğiz.

İlgilenenlerin faydalanması dileğiyle…
Sonraki yazılarımızda görüşmek üzere…
İyi çalışmalar…

Not: Örnek projeleri indirmek için aşağıdaki linklere tıklayınız.

Exit mobile version