TsgcWSPServer_WAMP › Eventi › OnCall
Si attiva quando un client invoca una procedura remota; il gestore deve rispondere tramite CallResult, CallProgressResult o CallError.
property OnCall: TsgcWSCallEvent;
// TsgcWSCallEvent = procedure(Connection: TsgcWSConnection; const CallId, ProcUri, Arguments: string) of object
—
CallId è l'identificatore scelto dal chiamante e deve essere riportato nella risposta. ProcUri è l'URI completo della procedura (qualsiasi prefisso è già stato risolto). Arguments trasporta gli elementi rimanenti dell'array CALL come payload codificato JSON — numero, stringa, oggetto, array o una sequenza separata da virgole per chiamate con più argomenti. Per ogni CALL il gestore deve produrre esattamente una risposta terminale: chiamare CallResult in caso di successo, CallError in caso di errore, oppure zero o più frame CallProgressResult seguiti da un CallResult finale quando si restituiscono risultati parziali in streaming al chiamante.
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;