-1

我有一个通过 Thrift 设置的客户端服务器架构。该服务是用java编写的,而客户端是用php编写的。现在,由于客户可能很多,我想介绍诸如唯一客户 ID 之类的概念。

当前的结构是所有客户端在其末端都有相同的客户端代码。因此,我确定客户端 ID 的唯一方法是在发出请求时进行。

由于该服务有很多公开的功能(> 50),我不想在所有功能中添加客户端 ID 作为参数(因为这意味着所有客户端的更改)。

有没有一种干净的方法来做到这一点 - 当客户端第一次创建服务对象时,它发送它的 Id,它成为服务线程的全局对象。对于所有对公开函数的后续调用,客户端 ID 因而成为服务线程的全局对象。请指导。

4

2 回答 2

0

假设您只是希望 clientid 在全球范围内可用 - 您应该简单地将它全球化。如果这不适合 oop 模式,你可以用注册模式来掩盖它,尽管它实际上只是糖衣。

于 2013-05-03T06:46:30.953 回答
0

您可以使用客户端 IP 地址作为参考。

“我如何从 Thrift 服务器获取客户端”

看起来子类化 TServerSocket/TNonBlockingServerSocket (以及您选择的服务器类)将允许您直接从他们管理的套接字轻松访问 IP 地址(或主机名)......

于 2013-05-03T06:37:08.537 回答