4

我们正在尝试使用带有网络核心后端的流,但出现反序列化错误

"grpc":{2 items
    "method":string"*****"
    "error":{2 items
    "code":int2
    "message":string"Error in response deserializer function."
  }
}

protoc 是 3.14.0 版 grpc-web-gen 是 1.2.1

生成客户端的命令是:protoc -I=./protos ./protos/*.proto --js_out=import_style=commonjs,binary:./dist --grpc-web_out=import_style=commonjs+dts,mode=grpcwebtext: ./dist

我们成功连接到端点并检索数据,并且调用在绑定使用 response.getMessage() 时失败,因为没有其他错误消息并且调试不是很简单,所以欢迎了解可能导致此错误的原因:)

谢谢你

4

1 回答 1

3

我在使用 gRPC Web 时遇到了同样的错误,因为我复制了示例但没有意识到getMessage()它不是框架 API 的一部分,而是message示例 Protobuf 定义中的一个字符串字段。

尝试response直接使用(或用 序列化它toObject()

var stream = echoService.serverStreamingEcho(streamRequest, metadata);
stream.on('data', function(response) {
  console.log(response.toObject());
});
于 2021-03-03T15:14:04.113 回答