TsgcWSPServer_WAMP › Zdarzenia › OnCall
Wywoływane, gdy klient wywołuje procedurę zdalną; procedura obsługi musi odpowiedzieć przez CallResult, CallProgressResult lub CallError.
property OnCall: TsgcWSCallEvent;
// TsgcWSCallEvent = procedure(Connection: TsgcWSConnection; const CallId, ProcUri, Arguments: string) of object
—
CallId to identyfikator wybrany przez wywołującego, który musi zostać odzwierciedlony w odpowiedzi. ProcUri to pełny URI procedury (wszelkie prefiksy zostały już rozwiązane). Arguments zawiera pozostałe elementy tablicy CALL jako ładunek zakodowany w JSON — liczba, ciąg znaków, obiekt, tablica lub sekwencja rozdzielona przecinkami dla wywołań z wieloma argumentami. Dla każdego wywołania CALL procedura obsługi powinna wygenerować dokładnie jedną terminalną odpowiedź: wywołać CallResult w przypadku powodzenia, CallError w przypadku niepowodzenia lub zero lub więcej ramek CallProgressResult zakończonych ostatecznym wywołaniem CallResult podczas strumieniowania częściowych wyników z powrotem do wywołującego.
procedure TForm1.WAMPServerCall(Connection: TsgcWSConnection;
const CallId, ProcUri, Arguments: string);
begin
if ProcUri = 'http://example.com/rpc/add' then
WSPServerWAMP1.CallResult(Connection, CallId, '42')
else
WSPServerWAMP1.CallError(Connection, CallId,
'http://example.com/errors/not-found', 'unknown procedure');
end;