I’ve wrote a WS and it’s work fine, I’m trying to implement a basic logging feature of the exchanged data, but I don’t understand where I can “intercept” the exchanged data.
you can grab incoming and outgoing streams.
see server.OnReceiveStream/server.OnSendStream events.
I’ve only server.onreadfromstream and server.onwritetostream. server is a TROIndyHTTPServer.
when i try to read the stream i receive an error: “Stream write error”
I’ve put only this code in the event handler:
procedure TServerDataModule.ROMessageReadFromStream(aStream: TStream);
var aaStream : TStream;
begin
aaStream := TStream.Create;
aaStream.CopyFrom(aStream,aStream.Size);
end;
you can’t create TStream
type because it contains abstract methods …
this code works:
procedure TServerForm.ROServerReadFromStream(aStream: TStream);
begin
if aStream is TMemoryStream then TMemoryStream(aStream).SaveToFile('in.$$$');
end;
procedure TServerForm.ROServerWriteToStream(aStream: TStream);
begin
if aStream is TMemoryStream then TMemoryStream(aStream).SaveToFile('out.$$$');
end;