İçeriğe geç

ASP.Net SignalR- Part 1

ASP.Net SignalR Microsoft’un geliştirmiş olduğu, bize gerçek-zamanlı (real-time) web uygulamaları gerçekleştirmemize olanak sağlayan bir frameworktür. Anlık veri gösterim ihtiyacı olan uygulamalarımız olabilir. Örneğin bir chat uygulamasını düşünelim. Bir kullanıcı mesaj göndermek istediğinde bu mesajın simultane ve anlık olarak tüm kullanıcılara iletilmesi beklenir. Yine SignalR için sık verilen bir diğer örnek olarak da bir borsa uygulamasını ele alalı. Borsada bir kağıt sahibisiniz ya da ilgilendiğiniz bir kağıt var. Bu kağıtların alış-satış değerleri kısa periyotlarla güncelleniyor ve sizin de bu güncellenen değerleri anlık olarak izleyebiliyor olmanız gerekiyor ki ihtiyacınıza göre bir alım-satım işlemi yapabilesiniz. Kullanıcılara bildirim gönderebileceğiniz bir altyapınız olmasını istiyorsanız da SignalR iş görüyor. Günümüzde web tabanlı oyunlar içinde SignalR teknolojisi sık olarak kullanılıyor.

SignalR bu işlemi nasıl yapıyor? SignalR bu işlemi nasıl yapıyor? SignalR temel olarak sunucu ile istemci arasındaki iletişim için dizayn edilmiş bir servis olan “RPC (Uzaktan Yordam Çağırımı)” kullanıyor. RPC’nin temel çalışma mantığında istemci, sunucuya bir istek gönderen ve bekleyen bir metot çağrısı yapar. İstemci bir yanıt alınana ya da zaman aşımına uğrayana kadar iş parçacığının işlenmesi engellenir. İstek geldiğinde, sunucu istenen hizmeti gerçekleştiren bir gönderme metodu çağırır ve cevabı istemciye gönderir. RPC çağrısı tamamlandıktan sonra, istemci programı devam eder. Ayrıca SignalR burada istemciden bir istek gelmeksizin veri göndermemize olanak sağlamak için aşağıdaki üç yöntemden birini otomatik olarak seçip kullanıyor:

1 – WebSocket
2 – Server-Sent Events
3 – Long Polling

Sunucu ve kullanıcı arasında web socket’i destekliyor ise bunu, desteklemiyor ise sırasıyla server-sent events’ı ya da long pooling yöntemini kullanıyor. Şimdi işin temeli olan kısma biraz giriş yapalım

Hub Kavramı

Hub’lar sunucu ile istemci arasındaki tüm iletişimin gerçekleştiği bir merkez, terminal, bir buluşma noktasıdır diyebiliriz. İstemcinin çağıracağı metotları biz Hub üzerinde tanımlarız. İstemci tarafına yazacağımız kodlar da Hub’ın çağıracağı metotları içerecek. İstemci tarafı için ise SignalR’ın Java, .NET ve Javascript client’ları mevcut.

İlk Yorumu Siz Yapın

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir