TsgcWSPServer_WAMP › 이벤트 › OnCall
클라이언트가 원격 프로시저를 호출할 때 발생합니다. 핸들러는 CallResult, CallProgressResult 또는 CallError를 통해 응답해야 합니다.
property OnCall: TsgcWSCallEvent;
// TsgcWSCallEvent = procedure(Connection: TsgcWSConnection; const CallId, ProcUri, Arguments: string) of object
—
CallId는 호출자가 선택한 식별자이며 응답에 다시 인용되어야 합니다. ProcUri는 전체 프로시저 URI입니다(접두사가 이미 해석됨). Arguments는 CALL 배열의 나머지 항목을 JSON 인코딩된 페이로드로 담습니다 — 숫자, 문자열, 객체, 배열 또는 다중 인수 호출의 경우 쉼표로 구분된 시퀀스. 각 CALL에 대해 핸들러는 정확히 하나의 최종 응답을 생성해야 합니다: 성공 시 CallResult를 호출하고, 실패 시 CallError를 호출하거나, 부분 결과를 호출자에게 스트리밍할 때는 0개 이상의 CallProgressResult 프레임 다음에 최종 CallResult를 호출하십시오.
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;