ASP.NET Core SignalR est un open-source library que simplifies adding real-time web functionality to apps. Real-time web functionality enables server-side code to push content to clients instantly.
Good candidates for SignalR:
- Apps que require high-frequency updates depuis le serveur. Exemples are gaming, social networks, voting, auction, maps, et GPS apps.
- Dashboards et monitoring apps. Exemples inclure company dashboards, instant sales updates, ou travel alerts.
- Collaborative apps. Whiteboard apps et team meeting software are exemples de collaborative apps.
- Apps que require notifications. Social networks, email, chat, games, travel alerts, et many other apps use notifications.
SignalR Core sgcWebSockets component uses WebSocket as transport pour se connecter à un SignalR Core server, si ce transport n'est pas supported, an erreur sera raised.
Delphi Code Exemples
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: le Caller sends un message vers le Callee et expects un message indicating thau invocatisur un été completed et facultatifly a result de la invocation
Exemple : client invokes méthode SendMessage et passes as paramètres user name et text message. Sends an Invocation Id to obtenir un result message depuis le serveur.
SignalRCore.Invoke('SendMessage', ['John', 'Hello All.']);
Non-Blocking Invocations: le Caller sends un message vers le Callee et ne expect aucune further messages pour ce invocation. Invocations peut être sent without an Invocation ID value. This indicates thau invocation est "non-blocking".
Exemple : client invokes méthode SendMessage et passes as paramètres user name et text message. Le client ne expect aucune response depuis le serveur concernant le result de la 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;
Streaming Invocations: le Caller sends un message vers le Callee et expects one ou more results returned par le Callee followed par un message indicating le end de invocation.
Exemple : client invokes Counter méthode et requests 10 numbers avec un interval de 500 milliseconds.
