grpc c++
grpc c++ 版本用的人相对少些
实际使用下,确实给 c++ 网络编程带来便利
不少读者对 grpc c++ 缺乏深入了解,以为这是一个同步的库,效率会很低
且官方也没有提供非常易懂的完全高效异步的例子,导致给使用者造成困惑与误解
笔者在编写异步双向流的 grpc 服务器中,从官方例子与 issue 中,终于写出了完美健壮的例子
特记一二
主要问题
编写异步双向流服务器,会遇到以下问题:
- 官方只提供了一元异步的例子
- 官方部分例子过于草率,应答处理直接开线程,可能会吓走大批用户
- 客户端关闭流,导致异步双向流服务器 crash 问题
- 典型的,会出
pure virtual method called
的错误
- 典型的,会出
参考
github issue :
- https://github.com/grpc/grpc/issues/22021
- https://github.com/grpc/grpc/issues/10136
- https://github.com/grpc/grpc/issues/25073
- https://github.com/grpc/grpc/issues/20155
重要解答(需要科学上网):
例子
以下是本人写的异步双向流例子,欢迎参考、借鉴:
https://github.com/fananchong/grpc_async_bidirectional_stream_example