grpc之node篇(静态代码)

注:本文环境为windows,请自行安装nodejs

创建项目文件夹,初始化项目

我的文件夹为grpctest
cd到项目文件下,运行  npm init

安装protoc以及grpc插件

这个用npm直接安装 
npm install grpc-tools --save-dev
npm install google-protobuf --save
npm install grpc --save
在./node_modules/grpc-tools/bin下,你会找到 protoc.exe 和 grpc_node_plugin.exe两个文件。

编写.proto文件并使用protoc 进行编译

HelloWorldService.proto
syntax = "proto3";
package com.sdp.grpctest;
message HelloRequest{
  string name = 1;
}
message HelloResponse{
  string helloString = 1;
}
// 服务HelloWorld
service HelloWorldService{
  rpc hello (HelloRequest) returns (HelloResponse){}
}
运行编译命令
./node_modules/grpc-tools/bin/protoc --js_out=import_style=commonjs,binary:./ --plugin=protoc-gen-grpc=./node_modules/grpc-tools/bin/grpc_node_plugin.exe --grpc_out=./ HelloWorldService.proto
运行完成后,会生成HelloWorldService_grpc_pb.js 和 HelloWorldServer_pb.js两个文件。

编写server.js文件

server.js
var services = require('./HelloWorldService_grpc_pb.js');
var messages = require('./HelloWorldService_pb.js');
var grpc = require('grpc')
var hello = function(call, callback) {
  var response = new messages.HelloResponse();
  response.setHellostring("hello," + call.request.getName());
  callback(null, response);
}
var server = new grpc.Server();
server.addService(
  services.HelloWorldServiceService,
  {
    hello:hello
  }
);
server.bind('0.0.0.0:50051', grpc.ServerCredentials.createInsecure());
server.start(function(err,data){
  console.log(err);
  console.log(data);
});

运行 node server.js启动server

编写client.js文件

var grpc = require('grpc');
var messages = require('./HelloWorldService_pb.js');
var services = require('./HelloWorldService_grpc_pb.js')
var request = new messages.HelloRequest();
request.setName('world');
var client = new services.HelloWorldServiceClient(
  'localhost:50051',
  grpc.credentials.createInsecure()
);
client.hello(request, function(err,data){
  if(err){
    console.error(err);
  }
  console.log(data);
  console.log(data.getHellostring());
})

运行 node client.js , 最后成功打印出hello,world



  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值