gRPC greeter_client无法正常工作

时间:2017-08-03 17:28:40

标签: ruby-on-rails protocol-buffers grpc

运行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>'

1 个答案:

答案 0 :(得分:0)

我无法重现你在这里看到的内容。

有一种猜测是,您的端口上可能正在运行另一台grpc服务器&#34; 50051&#34; (greeter_server.rb启动)。

默认情况下,grpc服务器使用SO_REUSEPORT选项绑定端口,因此允许这种情况。如果需要,可以通过使用以下命令构建服务器来禁用SO_REUSEPORT:

s = GRPC::RpcServer.new(server_args: { 'grpc.so_reuseport' => 0 })