从客户端获取thrift服务的全局变量的最佳方法

时间:2013-05-03 06:06:04

标签: java php thrift

我有一个通过thrift设置的客户端服务器架构。该服务是用java编写的,而客户端是用php编写的。现在,由于客户可能很多,我想介绍像独特的客户端ID这样的概念。

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

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

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

2 个答案:

答案 0 :(得分:0)

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

"how can i get the client's from the thrift server"

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

答案 1 :(得分:0)

鉴于您只想让clientid在全球范围内可用 - 您应该simply global it。如果它不适合oop模式,你可以使用registry pattern覆盖它,虽然它只是糖衣。