Slide 1

Slide 1 text

ASP.NET Core SignalR 2.1

Slide 2

Slide 2 text

ustasoglu /in/selcukusta selcukusta selcukusta.com selcukusta SELÇUK USTA yazılım mimarı @ KoçSistem Bilge Adam, Lynx S.p.A, Hürriyet

Slide 3

Slide 3 text

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.

Slide 4

Slide 4 text

GERÇEK ZAMANLI PANELLER OYUN HARİTA & GPS SOSYAL MEDYA

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

ölçeklenebilirlik otomatik bağlantı yönetimi grup iletişimi genişletilebilir protokol desteği

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

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.

Slide 10

Slide 10 text

WebSocket (WS) ServerSentEvents (SSE)

Slide 11

Slide 11 text

Hub

Slide 12

Slide 12 text

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 { }

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

JQuery bağımlılığına son! Daha hızlı, daha hafif ve kolay entegre edilebilir istemci kütüphanesi İstemci taraflı strongly-typed Hub Java, C++, IOS platformları için SDK geliştirmeleri > npm install @aspnet/signalr > npm install @aspnet/signalr-protocol-messagepack

Slide 15

Slide 15 text

Yatay Ölçeklendirme (Scale-out)

Slide 16

Slide 16 text

Sticky Session Pub/Sub 1

Slide 17

Slide 17 text

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ı)

Slide 18

Slide 18 text

DEMO: ASP.NET Core SignalR 2.1 İle Canlı Twitter Akışı