2017-09-08 86 views
0

我正在處理我的第一個grpc服務,我無法獲得最基本的工作方法。未在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

生成的Node.js gRPC客戶端將方法名稱更改爲camelCase以匹配已建立的JS方法名稱。所以,在這種情況下,客戶端對象應該有方法isIPValid(注意起始小寫'I')。

注意:這是一個已經多次報道的混亂點,這是我們將要改進的一點。

相關問題