如何在Thrift客户端中使用我们自己的I/O框架

How to use our own I/O framework inside a Thrift client?

本文关键字:自己的 我们自己 框架 我们 Thrift 客户端      更新时间:2023-10-16

服务器端一切正常。

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

是否有任何方法来实现这与c++ ?

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

我如何使用Apache Thrift的其他传输机制?

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

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

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

此外,我还提供了一个基于TStreamTransport的专用传输实现,以便在Delphi中使用STOMP。相关代码可以在/contrib文件夹中找到,值得一看。你知道,Thrift的好处之一就是它在所有语言中的工作原理都非常相似。