TsgcWSPServer_WAMP › 이벤트 › OnBeforeCancelCall
클라이언트가 진행 중인 RPC를 취소하도록 요청할 때 발생하며, 서버에 요청을 수락하거나 거부할 기회를 줍니다.
property OnBeforeCancelCall: TsgcWSBeforeCancelCallEvent;
// TsgcWSBeforeCancelCallEvent = procedure(Connection: TsgcWSConnection; const CallId: string; var Cancel: Boolean) of object
—
CallId로 식별되는 이전에 디스패치된 CALL에 대해 CALLCANCEL 프레임이 도착할 때 발생합니다. Cancel은 기본적으로 True이며, 이는 브로커에 해당 호출에 대한 progress result 전달을 중지하고 애플리케이션으로부터 최종 CallError를 기대하도록 지시합니다. 취소를 거부하려면 Cancel을 False로 설정하십시오. RPC는 계속 실행되고 최종 CallResult 또는 CallError가 여전히 다시 전송됩니다. 일반적인 용도는 호출자가 마음을 바꾼 장기 실행 쿼리, batch 작업 또는 백그라운드 RPC입니다.
procedure TForm1.WAMPServerBeforeCancelCall(Connection: TsgcWSConnection;
const CallId: string; var Cancel: Boolean);
begin
// honour the cancel and respond with an error so the caller resolves
Cancel := True;
WSPServerWAMP1.CallError(Connection, CallId,
'http://example.com/errors/cancelled', 'call cancelled by client');
end;