从文档中:
在双向流式RPC中,调用同样是由调用方法的客户机和接收客户机元数据、方法名和最后期限的服务器发起的。同样,服务器可以选择发回其初始元数据,或者等待客户机开始发送请求。
接下来会发生什么取决于应用程序,因为客户机和服务器可以以任何顺序读写--流完全独立地操作。[...]
我正在使用Grpc的同步C++API通过双向流发送消息,该流需要无限期地保持开放。 我用以下命令启动服务器: 在Ubuntu 16.04 LTS上使用Grpc 1.10.0
gRPC的Go实现:高性能,开源,通用的RPC框架,将移动和HTTP / 2放在首位。有关更多信息,请参见gRPC快速入门:运行指南。 安装 要安装此软件包,需要安装Go并在计算机上设置Go工作区。安装库的最简单方法是运行: $ go get -u google.golang.org/grpc 有了Go模块支持(Go 1.11+),只需import "google.golang.org/grpc"
我试图为双向流API编写一个cpp客户端。 通过下面的客户端代码,我可以在服务器上实例化一个流观察器。但是,问题在于调用服务器StreamObserver上的onNext函数。
我有使用的使用的概念。
gRPC客户端流媒体/双向流媒体是如何使用HTTP/2实现的 服务器流媒体是有意义的,因为它可以利用服务器推送来发送对请求的多个响应,但我不清楚它如何像通过websocket那样通过HTTP/2进行双向消息传递。
我正在努力提高Go gRPC服务器的覆盖率,但我在为服务器的拦截器功能编写测试时遇到了麻烦,因为我无法有意义地满足类型。 我有一个带有以下签名的函数: 我假设任何gRPC方法都会满足的签名: 所以我尝试传入一个具有此签名的方法: 我想象这会起作用,因为这是拦截器实际正在做的事情(转发RPC),但出于某种原因Go抱怨道: 不能使用AuthService。GetToken(类型func(上下文。上下文