Het meest gebruikelijke gebruik van de WAMP-component is dat een client een methode opvraagt bij de server en de server een antwoord naar de client stuurt. De client kan alleen de naam van de methode verzenden en/of enkele vereiste parameters doorgeven die de server nodig heeft om het resultaat te berekenen. De server verwerkt verzoeken en stuurt bij succes een antwoord met het resultaat naar de client. Als er een fout is, stuurt de server een foutantwoord naar de client.
Zoals u ziet, is er slechts één verzoek en één antwoord (succesvol of niet).
Voorbeeld: de server heeft een methode genaamd GetTime, zodat elke keer dat een client deze methode opvraagt, de server de servertijd retourneert.
WAMP Server
procedure OnServerCall(Connection: TsgcWSConnection; const CallId, ProcUri, Arguments: string);
begin
if ProcUri = 'GetTime' then
oServerWAMP.CallResult(CallId, FormatDateTime('yyyymmdd hh:nn:ss', Now))
else
oServer.WAMP.CallError(CallId, 'Unknown method');
end;
oServer := TsgcWebSocketServer.Create(nil);
oServer.Port := 80;
oServerWAMP := TsgcWSPServer_WAMP.Create(nil);
oServerWAMP.OnCall := OnServerCallEvent;
oServerWAMP.Server := oServer;
oServer.Active := True;
WAMP-client
procedure OnCallResultClient(Connection: TsgcWSConnection; CallId, Result: string);
begin
ShowMessage(Result);
end;
procedure OnCallErrorClient(Connection: TsgcWSConnection; const Error: string);
begin
ShowMessage(Error);
end;
oClient := TsgcWebSocketClient.Create(nil);
oClient.Host := '127.0.0.1';
oClient.Port := 80;
oClientWAMP := TsgcWSPClient_WAMP.Create(nil);
oClientWAMP.OnCallResult := OnCallResultClient;
oClientWAMP.OnCallError := OnCallErrorClient;
oClientWAMP.Client := oClient;
oClient.Active := True;
// After client has connected, request GetTime from server
oClientWAMP.Call('GetTime');