Verwendung von Callback-Funktionen

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu DataSnap-Server-Anwendung


Callback-Funktionen sind nützlich, wenn der Server während der Ausführung einer Servermethode mit dem Client kommunizieren muss. Bei Callback-Funktionen kann ein JSON-Parameter an den Client übergegeben werden, und der Client kann wiederum einen JSON-Wert an den Server zurückgeben.

Für die Übergabe einer Callback-Funktion muss die Servermethode einen Parameter des Typs TDBXCallback - wie in dem folgenden Beispiel - haben:

  procedure Callback(const PCallback: TDBXCallback);

In der Serverimplementierung kann die Callback-Funktion jederzeit aufgerufen werden:

  PCallback.Execute(TJSONString.Create('test'));

Der Aufruf erfolgt synchron und gibt einen Client-JSON-Wert zurück.

Auf der Client-Seite muss eine TDBXCallback-Klasse erweitert und die Methode Execute überschrieben werden:

  TCallbackClient = class(TDBXCallback) 
    function Execute(const Arg: TJSONValue): TJSONValue; override; 
  end;

Die Servermethode muss mit einer Instanz der Client-Callback-Klasse aufgerufen werden.

Die Proxy-Instanz oder der Server sind Eigentümer der Callback-Parameter. Die Parameter werden bei Beendigung freigegeben.

Siehe auch