在服务器端,一切正常。

但是在客户端,似乎我们不能仅仅使用Thrift来处理协议,并使用我们自己的I / O框架(例如mudu或其他框架)发送/接收数据。

有什么方法可以用C ++实现吗?

最佳答案

我认为这是一个合理的问题,可以扩展到更一般的问题:

如何在Apache Thrift中使用其他传输机制?

正如Hcorg所指出的那样,由于该框架的模块化结构,实现这一目标并不难。基本上,必须遵循以下步骤(对于Thrift支持的所有语言,不仅是C ++,这都是正确的)


从TTransport派生一个专门的类。在某些情况下,这是一个接口,而不是基类,但这并不重要。
实施所有methods needed
对于服务器端,您可能需要TServerTransport派生


现有的实现可以用作模型,尽管TTransport中的方法很多,但大多数实现起来并不是很困难。

此外,我还基于TStreamTransport提供了一种专门的传输实现,以将STOMP与Delphi一起使用。相关代码可以在/contrib Folder中找到,值得一看。您知道,Thrift的优点之一是,所有语言的东西都非常相似。

关于c++ - 如何在Thrift客户端中使用我们自己的I/O框架?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31961295/

10-13 08:10