如何在Thrift客户端中使用我们自己的I/O框架
How to use our own I/O framework inside a Thrift client?
服务器端一切正常。
但是在客户端,我们似乎不能仅仅使用Thrift来处理协议,并使用我们自己的I/O框架(如muduo或其他)来发送/接收数据。
是否有任何方法来实现这与c++ ?
我认为这是一个合理的问题,它可以扩展到更一般的问题:
我如何使用Apache Thrift的其他传输机制?
正如Hcorg指出的那样,由于框架的模块化结构,实现这一点并不难。基本上,必须遵循以下步骤(对于Thrift支持的所有语言都是如此,不仅仅是c++)
- 从TTransport派生一个专门化类。在某些情况下,这是一个接口,而不是一个基类,但这并不重要。
- 实现所有需要的方法 对于服务器端,您可能需要
TServerTransport
衍生物现有的实现可以作为模型,尽管TTransport
中有很多方法,但大多数方法并不难实现。
此外,我还提供了一个基于TStreamTransport
的专用传输实现,以便在Delphi中使用STOMP。相关代码可以在/contrib
文件夹中找到,值得一看。你知道,Thrift的好处之一就是它在所有语言中的工作原理都非常相似。
相关文章:
- 没有为自己的结构调用列表推回方法
- 在他自己的方法中,有可能将一个对象取消引用到另一个对象吗
- 在c++中为我自己的基于指针的数组分配内存的正确方法
- C++从对象自己的类中删除对象
- 使用 std::optional,而不是自己的结构
- 子轴围绕父轴而不是他自己的轴旋转
- 这个C++编译器优化(在自身的实例上调用对象自己的构造函数)的名称是什么,它是如何工作的?
- C++ 如何为自己的迭代器类从迭代器转换为const_iterator?
- 重载 + 自己的类和 std::string 的运算符
- 类无法访问自己的私有静态 constexpr 方法 - Clang bug?
- 如何在 c++98 中定义我们自己的 nullptr
- 编写我们自己的比较操作
- 为什么我们需要维护自己的矩阵来转换游戏对象
- 没有明显的时间戳与时区偏移类型的c++.卷我们自己的
- 为什么我们需要写一个自己的复制程序,而我们可以使用复制shell命令
- 如何在Thrift客户端中使用我们自己的I/O框架
- 如何编译我的c++库在纯Android Studio的方式(不指定任何.mk文件在我们自己)
- 可以将std::find函数用于我们自己的类
- 如何自定义cin来读取我们自己的格式
- Can运算符<<用于设计我们自己的输出显示方式