TsgcWSPServer_WAMP › Eventos › OnCall
Disparado quando um cliente invoca um procedimento remoto; o manipulador deve responder através de CallResult, CallProgressResult ou CallError.
property OnCall: TsgcWSCallEvent;
// TsgcWSCallEvent = procedure(Connection: TsgcWSConnection; const CallId, ProcUri, Arguments: string) of object
—
CallId é o identificador escolhido pelo chamador e deve ser devolvido na resposta. ProcUri é a URI completa do procedimento (qualquer prefixo já foi resolvido). Arguments carrega os itens restantes do array CALL como um payload codificado em JSON — número, string, objeto, array ou uma sequência separada por vírgulas para chamadas com múltiplos argumentos. Para cada CALL espera-se que o handler produza exatamente uma resposta terminal: chame CallResult em caso de sucesso, CallError em caso de falha, ou zero ou mais frames CallProgressResult seguidos de um CallResult final ao enviar resultados parciais de volta ao chamador via streaming.
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;