首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Delphi DataSnap Rest

Delphi DataSnap Rest
EN

Stack Overflow用户
提问于 2017-06-08 00:18:34
回答 0查看 1.6K关注 0票数 0

我正在使用REST和json运行一些Datasnap测试。

在Delphi自己创建的单元ServerMethods中,有"ReverseString“函数,但是我怎么知道是谁发送的呢?

我想保留来自调用此方法的客户端的信息日志。

我知道它可以作为一个参数传递,但它将由客户端负责将此信息传递给我,我不希望这样,假设该方法将是公共的,并且多个客户端将触发此信息。如果我没有通过服务器的控制直接获取信息,我很容易失去这种控制。

我在网上发现,在ServerConteiner单元中,有一个"DSServer“对象,这个对象有一个名为"OnConnect”的事件,所以它可以获得以下sa数据:

代码语言:javascript
复制
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方法中,我尝试如下所示:

代码语言:javascript
复制
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;
EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44418007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档