我在Thrift开发一个'代理'服务器.我的问题是,每个与代理相关的连接都使用Handler的相同实例.代理的客户端实现在Handler中,因此所有客户端都通过与终端服务器相同的连接进行通信.
我有:n个客户端 - > n个套接字 - > 1个处理程序 - > 1个套接字 - > 1个服务器我要实现的内容:n个客户端 - > n个套接字 - > n个处理程序 - > n个套接字 - > 1个服务器
现在的问题是,如果客户端在服务器上更改了"本地"参数(为每个客户端独立定义的内容),则其他客户端也将使用更改的环境.
shared_ptr<CassProxyHandler> handler(new CassProxyHandler(adr_s,port_s,keyspace));
shared_ptr<TProcessor> processor(new CassandraProcessor(handler));
shared_ptr<TServerTransport> serverTransport(new TServerSocket(port));
shared_ptr<TTransportFactory> transportFactory(new TFramedTransportFactory());
shared_ptr<TProtocolFactory> protocolFactory(new TBinaryProtocolFactory());
TThreadedServer server(processor, serverTransport, transportFactory, protocolFactory);
server.serve();
Run Code Online (Sandbox Code Playgroud)
有没有办法实现服务器,为每个服务器套接字创建一个新的Handler实例,而不是使用相同的处理程序?
感谢您的任何建议或帮助,@