首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与工具proto文件的Node.js gRPC连接

与工具proto文件的Node.js gRPC连接
EN

Stack Overflow用户
提问于 2020-01-09 22:42:17
回答 1查看 210关注 0票数 0

我正在尝试用我在我的机器上运行的工具创建一个Node.js gRPC连接,这个工具名为Pachyderm。我为该工具生成了一个.proto文件,它将简单地显示该工具的版本。我已经为它生成了一个server.js,但是,它没有成功地通过连接到相应的IP:port来提取工具版本。

如果你能帮我解决这个问题,我会非常感激的。

.proto文件

代码语言:javascript
复制
syntax = "proto3";

import "google/protobuf/empty.proto";

package versionpb;
option go_package = "github.com/pachyderm/pachyderm/src/client/version/versionpb";

message Version {
  uint32 major = 1;
  uint32 minor = 2;
  uint32 micro = 3;
  string additional = 4;
}

service API {
  rpc GetVersion(google.protobuf.Empty) returns (Version) {}
}

server.js

代码语言:javascript
复制
const path = require('path')

const protoLoader = require('@grpc/proto-loader')
const grpc = require('grpc')

const PROTO_PATH = path.resolve(__dirname, './protos/pach.proto')

const pd = protoLoader.loadSync(PROTO_PATH)
const hp = grpc.loadPackageDefinition(pd).pach

function sayHello (call, fn) {
  fn(null, { message: 'The tool version is ' + call.request.name })
}

function main () {
  const port = 30650
  const server = new grpc.Server()


  server.bind(`192.161.5.3:${port}`, grpc.ServerCredentials.createInsecure())
  server.start()
  console.log(`gRPC server started on port: ${port}`)
}

main()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-08 17:38:53

加载包定义之后,启动服务器后,需要将新服务添加到服务器。

代码语言:javascript
复制
// method name could be API, api or aPI dependes on how this was generated
server.addService(hp.versionpb.service, {api  : sayHello});
server.start();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59673171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档