我正在使用REST和json运行一些Datasnap测试。
在Delphi自己创建的单元ServerMethods中,有"ReverseString“函数,但是我怎么知道是谁发送的呢?
我想保留来自调用此方法的客户端的信息日志。
我知道它可以作为一个参数传递,但它将由客户端负责将此信息传递给我,我不希望这样,假设该方法将是公共的,并且多个客户端将触发此信息。如果我没有通过服务器的控制直接获取信息,我很容易失去这种控制。
我在网上发现,在ServerConteiner单元中,有一个"DSServer“对象,这个对象有一个名为"OnConnect”的事件,所以它可以获得以下sa数据:
Procedure TServerContainer1.DSServer1Connect (
DSConnectEventObject: TDSConnectEventObject);
Begin
DSConnectEventObject.ChannelInfo.ClientInfo.IpAddress;
DSConnectEventObject.ChannelInfo.ClientInfo.ClientPort;
DSConnectEventObject.ChannelInfo.ClientInfo.Protocol;
DSConnectEventObject.ChannelInfo.ClientInfo.AppName;
End;但我无法在ServerMethods.ReverseString中找到如何获取这些数据...
我相信处理是在服务器上的线程中进行的,所以我不能将这个值作为全局值传递,因为它可以从其他并发连接中提取信息。
在ReverseString方法中,我尝试如下所示:
Var
ADSServerClass: TDSServerClass;
Begin
ADSServerClass: = TDSServerClass (GetOwner);
TDSServer (ADSServerClass.Server). ???
// I got to the server, but I can not find it, and I do not know if it is this way to find the data of who is requesting me to execute the ReverseString
End;https://stackoverflow.com/questions/44418007
复制相似问题