我正在开发我的第一个grpc服务,但我无法使用最基本的方法。
这是我的服务器代码:
const grpc = require('grpc');
const ipvalid_proto = grpc.load('ip_valid.proto').ipvalid;
const server = new grpc.Server();
server.addService(ipvalid_proto.IPValidator.service, {
IsIPValid:(arg, callback) => callback(null, true),
});
server.bind('127.0.0.1:50051', grpc.ServerCredentials.createInsecure());
server.start();
我的客户看起来像这样:
const grpc = require('grpc');
const ipvalid_proto = grpc.load('ip_valid.proto').ipvalid;
const client = new ipvalid_proto.IPValidator('localhost:50051', grpc.credentials.createInsecure());
client.IsIPValid({ address: '127.0.0.1' }, (err, res) => {});
我首先启动服务器,然后是客户端,我总是得到:
client.IsIPValid不是函数
在客户端的日志记录中。这里有什么问题?它看起来与文档中提供的基本示例完全相同。
答案 0 :(得分:0)
Generated Node.js gRPC客户端将方法名称更改为camelCase
,以匹配方法名称的已建立JS样式。因此,在这种情况下,客户端对象应该具有方法isIPValid
(注意起始小写的'I')。
注意:这是一个混淆点,已被报道过几次,而且我们将会改进这一点。