Как вызвать сервер gRP C с клиента NodeJS при использовании сгенерированных файлов * _pb. js? - PullRequest
0 голосов
/ 16 марта 2020

Я не хочу распространять файлы прототипов среди клиентов, поэтому я генерирую файлы _pb. js с соответствующих протосов с помощью здесь

Но я не могу понять о том, как «вызвать» функцию, выполняющуюся на сервере GRP c.

Вот соответствующий бит:

// commp_grpc_pb.js

// GENERATED CODE -- DO NOT EDIT!

'use strict';
var grpc = require('grpc');
var commp_pb = require('./commp_pb.js');

function serialize_optfoo_FooReply(arg) {
  if (!(arg instanceof commp_pb.FooReply)) {
    throw new Error('Expected argument of type optfoo.FooReply');
  }
  return Buffer.from(arg.serializeBinary());
}

function deserialize_optfoo_FooReply(buffer_arg) {
  return commp_pb.FooReply.deserializeBinary(new Uint8Array(buffer_arg));
}

function serialize_optfoo_FooRequest(arg) {
  if (!(arg instanceof commp_pb.FooRequest)) {
    throw new Error('Expected argument of type optfoo.FooRequest');
  }
  return Buffer.from(arg.serializeBinary());
}

function deserialize_optfoo_FooRequest(buffer_arg) {
  return commp_pb.FooRequest.deserializeBinary(new Uint8Array(buffer_arg));
}


var FooService = exports.FooService = {
  fooFunc: {
    path: '/optfoo.Foo/FooFunc',
    requestStream: false,
    responseStream: false,
    requestType: commp_pb.FooRequest,
    responseType: commp_pb.FooReply,
    requestSerialize: serialize_optfoo_FooRequest,
    requestDeserialize: deserialize_optfoo_FooRequest,
    responseSerialize: serialize_optfoo_FooReply,
    responseDeserialize: deserialize_optfoo_FooReply,
  },
};

exports.FooClient = grpc.makeGenericClientConstructor(FooService);


Я сделал мой клиент

const grpc__ = require('../services/commp_grpc_pb');
let client = new grpc__.FooClient('localhost:50051',
        grpc.credentials.createInsecure());

Я уже сгенерировал свой FooRequest. Как передать этот запрос на сервер gRP C?

...