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に対して、ハンドラはちょうど1つの終端応答を生成することが期待されます。成功時には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;