运行greeter_client.rb后,它发出以下异常
ruby greeter_client.rb
/Users/yashoda/.rvm/gems/ruby-2.1.5@rails320/gems/grpc-1.4.1-universal-darwin/src/ruby/lib/grpc/generic/active_call.rb:46:in `check_status': 12: (GRPC::Unimplemented)
from /Users/yashoda/.rvm/gems/ruby-2.1.5@rails320/gems/grpc-1.4.1-universal-darwin/src/ruby/lib/grpc/generic/active_call.rb:178:in `attach_status_results_and_complete_call'
from /Users/yashoda/.rvm/gems/ruby-2.1.5@rails320/gems/grpc-1.4.1-universal-darwin/src/ruby/lib/grpc/generic/active_call.rb:340:in `request_response'
from /Users/yashoda/.rvm/gems/ruby-2.1.5@rails320/gems/grpc-1.4.1-universal-darwin/src/ruby/lib/grpc/generic/client_stub.rb:167:in `request_response'
from /Users/yashoda/.rvm/gems/ruby-2.1.5@rails320/gems/grpc-1.4.1-universal-darwin/src/ruby/lib/grpc/generic/service.rb:185:in `block (3 levels) in rpc_stub_class'
from greeter_client.rb:46:in `main'
from greeter_client.rb:50:in `<main>'
答案 0 :(得分:0)
我无法重现你在这里看到的内容。
有一种猜测是,您的端口上可能正在运行另一台grpc服务器&#34; 50051&#34; (greeter_server.rb启动)。
默认情况下,grpc服务器使用SO_REUSEPORT选项绑定端口,因此允许这种情况。如果需要,可以通过使用以下命令构建服务器来禁用SO_REUSEPORT:
s = GRPC::RpcServer.new(server_args: { 'grpc.so_reuseport' => 0 })