SignalR Core Delphi

· Bileşenler

 ASP.NET Core SignalR, uygulamalara gerçek zamanlı web işlevselliği eklemeyi basitleştiren açık kaynaklı bir kütüphanedir. Gerçek zamanlı web işlevselliği, sunucu tarafı kodun içeriği istemcilere anında göndermesini sağlar.

SignalR için iyi adaylar:


SignalR Core sgcWebSockets bileşeni, bir SignalR Core sunucusuna bağlanmak için taşıma olarak WebSocket kullanır; bu taşıma desteklenmiyorsa bir hata oluşturulur. 

Delphi Kod Örnekleri 

SignalRCore.Invoke('SendMessage', ['John', 'Hello All.'], 'id-000001');
procedure OnSignalRCoreCompletion(Sender: TObject; Completion: TSignalRCore_Completion);
begin
  if Completion.Error <> '' then
    ShowMessage('Something goes wrong.')
  else
    ShowMessage('Invocation Successful!');
end; 

Çağrılar (Invocations): Çağıran (Caller), Çağrılana (Callee) bir mesaj gönderir ve çağrının tamamlandığını belirten bir mesaj ile isteğe bağlı olarak çağrının bir sonucunu bekler

Örnek: istemci SendMessage metodunu çağırır ve parametre olarak kullanıcı adı ile metin mesajını geçirir. Sunucudan bir sonuç mesajı almak için bir Invocation Id gönderir. 

SignalRCore.Invoke('SendMessage', ['John', 'Hello All.']); 

Bloke Etmeyen Çağrılar: Çağıran, Çağrılana bir mesaj gönderir ve bu çağrı için başka mesaj beklemez. Çağrılar bir Invocation ID değeri olmadan gönderilebilir. Bu, çağrının "bloke etmeyen" olduğunu belirtir.

Örnek: istemci SendMessage metodunu çağırır ve parametre olarak kullanıcı adı ile metin mesajını geçirir. İstemci, çağrının sonucu hakkında sunucudan herhangi bir yanıt beklemez. 

SignalRCore.InvokeStream('Counter', [10, 500], 'id-000002');
procedure OnSignalRCoreStreamItem(Sender: TObject; StreamItem: TSignalRCore_StreamItem; var Cancel: Boolean);
begin
  DoLog('#stream item: ' + StreamItem.Item);
end;
procedure OnSignalRCoreCompletion(Sender: TObject; Completion: TSignalRCore_Completion);
begin
  if Completion.Error <> '' then
    ShowMessage('Something goes wrong.')
  else
    ShowMessage('Invocation Successful!');
end; 

Akış Çağrıları (Streaming Invocations): Çağıran, Çağrılana bir mesaj gönderir ve Çağrılan tarafından döndürülen bir veya daha fazla sonucu, ardından çağrının sonunu belirten bir mesajı bekler.

Örnek: istemci Counter metodunu çağırır ve 500 milisaniyelik aralıkla 10 sayı ister.