无法从nodejs / python客户端连接到grpc

时间:2018-03-25 12:43:55

标签: python node.js microservices grpc go-micro

我的grpc服务器处于go(go-micro)状态,并且工作正常,我已经通过Task.Factory和web应用程序(虹膜)进行了测试。

这是本地grpc设置

我一直收到此错误(micro web

Stream removed

有时我会收到此错误({ Error: 2 UNKNOWN: Stream removed at new createStatusError ([projectROOT]/node_modules/grpc/src/client.js:64:15) at [projectROOT]/node_modules/grpc/src/client.js:583:15 code: 2, metadata: Metadata { _internal_repr: {} }, details: 'Stream removed' }

Trying to connect an http1.x server

我的节点代码

{ Error: 14 UNAVAILABLE: Trying to connect an http1.x server
    at new createStatusError ([projectROOT]/node_modules/grpc/src/client.js:64:15)
    at [projectROOT]/node_modules/grpc/src/client.js:583:15
  code: 14,
  metadata: Metadata { _internal_repr: {} },
  details: 'Trying to connect an http1.x server' }

还面临与Python代码相同的问题

错误
const grpc = require('grpc');

const AuthPB      = require('./auth_pb');
const AuthService = require('./auth_grpc_pb');

const AuthClient = new AuthService.AuthClient(
    `localhost:59685`,
    grpc.credentials.createInsecure()
);

function run(cb) {
  const AuthTokenRequest = new AuthPB.AuthTokenRequest({
    token: `some token`,
  });
  AuthClient.isLoggedIn(AuthTokenRequest, (err, authRes) => {
    if(!err) return cb({status: 1});
    cb({
      status: 0,
      err,
      message: 'Not loggedin',
    });
  });
}


run(console.log);

Traceback (most recent call last):
  File "app.py", line 15, in <module>
    run()
  File "app.py", line 11, in run
    res = AuthStub.IsLoggedIn(atReq)
  File "[python3.6-path]/site-packages/grpc/_channel.py", line 484, in __call__
    return _end_unary_response_blocking(state, call, False, deadline)
  File "[python3.6-path]/site-packages/grpc/_channel.py", line 434, in _end_unary_response_blocking
    raise _Rendezvous(state, None, None, deadline)
grpc._channel._Rendezvous: <_Rendezvous of RPC that terminated with (StatusCode.UNAVAILABLE, Trying to connect an http1.x server)>

我的Python代码

Traceback (most recent call last):
  File "app.py", line 15, in <module>
    run()
  File "app.py", line 11, in run
    res = AuthStub.IsLoggedIn(atReq)
  File "[python3.6-path]/site-packages/grpc/_channel.py", line 484, in __call__
    return _end_unary_response_blocking(state, call, False, deadline)
  File "[python3.6-path]/site-packages/grpc/_channel.py", line 434, in _end_unary_response_blocking
    raise _Rendezvous(state, None, None, deadline)
grpc._channel._Rendezvous: <_Rendezvous of RPC that terminated with (StatusCode.UNKNOWN, Stream removed)>

1 个答案:

答案 0 :(得分:2)

当客户端尝试创建不安全的连接但服务器使用ssl时,我有相同的错误消息

尝试替换

grpc.credentials.createInsecure()

grpc.credentials.createSsl()