2017-09-08 2 views
0

Je travaille sur mon premier service grpc et je n'arrive pas à faire fonctionner la méthode la plus basique.Méthode non définie sur grpc Client

Voici mon code serveur:

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(); 

Et mon client ressemble à ceci:

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) => {}); 

Je commence d'abord le serveur, puis le client et je reçois toujours:

client.IsIPValide n'est pas une fonction

dans la journalisation du client. Qu'est-ce que j'ai tort ici? Il ressemble exactement aux exemples de base fournis dans la documentation.

Répondre

0

Les clients gRPC Node.js générés changent les noms de méthode en camelCase pour correspondre au style JS établi pour les noms de méthode. Donc, dans ce cas, l'objet client doit avoir la méthode isIPValid (notez le 'I' minuscule de départ).

Note: Il s'agit d'un point de confusion qui a été signalé plus d'une fois, et c'est quelque chose que nous chercherons à améliorer.