Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ASP.NET Core SignalR 2.1 Yenilikleri

ASP.NET Core SignalR 2.1 Yenilikleri

Avatar for Selçuk Usta

Selçuk Usta

June 26, 2018
Tweet

More Decks by Selçuk Usta

Other Decks in Programming

Transcript

  1. SignalR; Sunucu ile istemci arasında – HTTP protokolünden farklı olarak

    – kalıcı bir bağlantı sağlayan, Sunucudaki kod ile istemci tarafında JavaScript tetikleyebilen, Uygulamalara, gerçek zamanlı web uygulaması işlevini sağlayan ASP.NET Core kütüphanesidir.
  2. Product microservice 1 UpdatePrice () Web API 2 DB Update

    3 PriceUpdated event Event Bus (Pub/Sub) Notification microservice 4 Web API PriceUpdated event 5 SignalR Hub event-driven microservice architecture
  3. 3 2 1 LongPolling ServerSentEvents WebSocket - İstemci, alışagelmiş şekilde

    (HTTP) sunucuya bir istekte bulunur. - İstekten dönen sayfada yer alan JavaScript bloğu çalıştırılır. - Sunucu, yeni bir bilgi üretene dek cevap vermez. - Yeni bilginin üretilmesi sonucu oluşan cevap istemciye iletilir. - İstemci, yeni bilgiyi alır; işler ve sunucuya tekrar istekte bulunup süreci baştan başlatır. - İstemci, alışagelmiş şekilde (HTTP) sunucuya bir istekte bulunur. - İstekten dönen sayfada yer alan JavaScript bloğu çalıştırılır. - Çalışan script bloğu aracılığıyla istemci sunucu arası tek yönlü bir haberleşme kanalı oluşur ve bu kanal üzerinden sunucu, istemciye yeni durumları iletir. - İstemci, alışagelmiş şekilde (HTTP) sunucuya bir istekte bulunur. - İstekten dönen sayfada yer alan JavaScript bloğu çalıştırılır. - Çalışan script bloğu aracılığıyla istemci sunucu arası çift yönlü bir haberleşme kanalı oluşur ve bu kanal üzerinden sunucu ve istemci birbirlerine yeni durumları iletirler.
  4. Hub

  5. Hub'lar; sunucu ve istemcinin birbirlerine ait fonksiyonları, parametrik olarak işleyebilmesine

    olanak sağlayan, protokol tabanlı iletişim nesneleridir. JSON M E S S A G E P A C K const connection = new signalR.HubConnectionBuilder() .withUrl("/chatHub").build(); public class ChatHub : Hub { }
  6. M E S S A G E P A C

    K {"name":"John","age":30,"car":null} 83 a4 6e 61 6d 65 a4 4a 6f 68 6e a3 61 67 65 1e a3 63 61 72 c0 35 bytes 21 bytes (%60 daha küçük) { "name": "John", "age": 30, "car": null } 83 a4 6e 61 6d 65 a4 4a 6f 68 6e a3 61 67 65 1e a3 63 61 72 c0 48 bytes 21 bytes (%44 daha küçük) Yeni nesil "binary serialization" yöntemi JSON kadar yaygın, JSON'dan daha küçük 50'den fazla ortam ve programlama dili için destek (*) (*) https://msgpack.org
  7. JQuery bağımlılığına son! Daha hızlı, daha hafif ve kolay entegre

    edilebilir istemci kütüphanesi <spoiler> İstemci taraflı strongly-typed Hub </spoiler> <spoiler> Java, C++, IOS platformları için SDK geliştirmeleri </spoiler> > npm install @aspnet/signalr > npm install @aspnet/signalr-protocol-messagepack
  8. 2 Azure SignalR ServicePreview Performans, yüksek erişilebilirlik, ölçeklenebilirlik Yetkilendirme Fiziksel/Yazılımsal

    yük dağıtımı Eş zamanlı HTTP bağlantı limitlendirmesi - Long Polling, Server Sent Events (Chrome – 6 Bağlantı) - WebSocket (Chrome – 256 Bağlantı)