SignalR Core Delphi

· Composants

 ASP.NET Core SignalR est une bibliothèque open source qui simplifie l'ajout de fonctionnalités web en temps réel aux applications. Les fonctionnalités web en temps réel permettent au code côté serveur de pousser instantanément du contenu vers les clients.

Bons candidats pour SignalR :


Le composant SignalR Core de sgcWebSockets utilise WebSocket comme transport pour se connecter à un serveur SignalR Core ; si ce transport n'est pas pris en charge, une erreur est levée. 

Exemples de code Delphi 

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;

Invocations : l'appelant envoie un message à l'appelé et attend en retour un message indiquant que l'invocation est terminée, et éventuellement un résultat de l'invocation.

Exemple : le client invoque la méthode SendMessage et passe en paramètres le nom d'utilisateur et un message texte. Envoie un Invocation Id pour obtenir un message de résultat depuis le serveur. 

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

Invocations non bloquantes : l'appelant envoie un message à l'appelé et n'attend aucun message supplémentaire pour cette invocation. Les invocations peuvent être envoyées sans valeur d'Invocation ID. Cela indique que l'invocation est « non bloquante ».

Exemple : le client invoque la méthode SendMessage et passe en paramètres le nom d'utilisateur et un message texte. Le client n'attend aucune réponse du serveur concernant le résultat de l'invocation. 

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;

Invocations de streaming : l'appelant envoie un message à l'appelé et attend un ou plusieurs résultats renvoyés par l'appelé, suivis d'un message indiquant la fin de l'invocation.

Exemple : le client invoque la méthode Counter et demande 10 nombres avec un intervalle de 500 millisecondes.