在TServer外的Thrift中写入输出流?

时间:2013-03-06 00:14:19

标签: thrift outputstream

我正在努力寻找Thrift文档来解释写入套接字的过程,而不是通过接口方法。

如果我希望服务器在不需要客户端发起请求的情况下写出数据,那么我应该查看Thrift库的哪些组件?有没有很好的例子说明如何在我失踪的地方做到这一点?一切似乎都依赖于使用TServer类。

看看http://thrift.apache.org/docs/concepts/的本能表明它是我感兴趣的TProcessor类?但是很难找到能够很好地利用它的例子。

1 个答案:

答案 0 :(得分:1)

只要您在TProtocol上建立TTransport实例,就可以在其中编写任何Thrift结构。这只是几行代码:

TTransport trans = ....;
TProtocol prot = ....;
MyStruct myStruct = ....; //Any thrift structure that extends TBase
myStruct.write(prot);
trans.flush();

阅读序列化结构也很容易:

TProtocol prot = ....;
MyStruct myStruct = new MyStruct();
myStruct.read(prot);

类/方法语义的名称可能会根据实现语言而改变,但总体思路对于所有语言都是一样的。

对于示例,我建议查看由Thrift编译器和TSerializer java类生成的服务器代码。