grpc之node篇(静态代码)
2016-12-30 16:45
141 查看
注:本文环境为windows,请自行安装nodejs
cd到项目文件下,运行 npm init
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两个文件。
./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两个文件。
运行node server.js启动server
运行node client.js , 最后成功打印出hello,world
创建项目文件夹,初始化项目
我的文件夹为grpctestcd到项目文件下,运行 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.protosyntax = "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.jsvar 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
相关文章推荐
- 快速掌握Node.js环境的安装与运行方法
- Windows系统下Node.js的简单入门教程
- node网页分段渲染详解
- 在Node.js应用中使用Redis的方法简介
- 在Ubuntu系统上安装Ghost博客平台的教程
- Node.js编程中客户端Session的使用详解
- node+express制作爬虫教程
- 使用Raygun对Node.js应用进行错误处理的方法
- 详解nodejs 文本操作模块-fs模块(三)
- 在Mac OS下使用Node.js的简单教程
- Node.js环境下编写爬虫爬取维基百科内容的实例分享
- node.js抓取并分析网页内容有无特殊内容的js文件
- 在Linux系统中搭建Node.js开发环境的简单步骤讲解
- 详解Node.js包的工程目录与NPM包管理器的使用
- 浅析Node在构建超媒体API中的作用
- 在Node.js中使用HTTP上传文件的方法
- Node.js的npm包管理器基础使用教程
- 全面解析node 表单的图片上传
- 举例讲解Node.js中的Writable对象