我的 grpc 服务器在 go (go-micro) 中,它工作正常,我已经测试了 viamicro web
和 go web app (iris)。
这是本地 grpc 设置
我不断收到此错误 ( 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' }
我的节点代码
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);
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.UNAVAILABLE, Trying to connect an http1.x server)>
.
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)>
我的 Python 代码
import grpc
import auth_pb2
import auth_pb2_grpc
def run():
channel = grpc.insecure_channel('localhost:59685')
AuthStub = auth_pb2_grpc.AuthStub(channel)
atReq = auth_pb2.AuthTokenRequest(token='some token')
res = AuthStub.IsLoggedIn(atReq)
print("IsLoggedin: " + res.status)
if __name__ == "__main__":
run()