我从 gRPC 开始构建一个简单的 Java 聊天程序。
protc --version 打印 libprotoc 3.5.1
-proto 文件:
syntax = "proto3";
option java_multiple_files = true;
option java_package = "grpc";
// whihout this Option i get no service
option java_generic_services = true;
option java_outer_classname = "ChatProto";
option objc_class_prefix = "HLW";
package chat;
message ClientPost {
string name = 1;
string value = 2;
}
message ServerReply {
ClientPost back = 1;
}
// The service definition.
service Verbindung {
rpc ChatService (stream ClientPost) returns (stream ServerReply);
}
//文件结束
为什么我需要设置选项 java_generic_services ?
class ChatImpl extends grpc.Verbindung { @Override public void chatService(RpcController controller, ClientPost request, RpcCallback done) { // 为什么我得到这种服务?} }
// 2. 为什么我得到另一个类名?关闭 VerbindungImplBase
预期功能
public void sayHello(HelloRequest req, StreamObserver<HelloReply> responseObserver) { }
- 我必须做什么才能获得这种预期的服务功能?
可能是错误的协议编译器/错误的安装/缺少零件?