NodeJS GRPC简单的示例详解
更新时间:2024年10月16日 09:38:04 作者:田猿笔记
本文介绍了如何使用NodeJS GRPC,包括.proto文件的定义、客户端和服务器的实现,首先,创建.proto文件定义服务和消息,然后实现客户端greeter_client.js文件,最后运行服务器和客户端,通过这篇文章,你可以快速掌握NodeJS GRPC的基础使用方法
1. 定义 .proto 文件
首先,创建一个 .proto 文件,定义服务和消息:
syntax = "proto3";
package helloworld;
service Greeter {
rpc SayHello (HelloRequest) returns (HelloReply) {}
rpc SayHelloAgain (HelloRequest) returns (HelloReply) {}
}
message HelloRequest {
string name = 1;
}
message HelloReply {
string message = 1;
}### 2. 实现服务器
创建 `greeter_server.js` 文件,包含服务的实现:
```javascript
const grpc = require('@grpc/grpc-js');
const protoLoader = require('@grpc/proto-loader');
const packageDefinition = protoLoader.loadSync('helloworld.proto', {
keepCase: true,
longs: String,
enums: String,
defaults: true,
oneofs: true
});
const helloProto = grpc.loadPackageDefinition(packageDefinition).helloworld;
function sayHello(call, callback) {
callback(null, { message: 'Hello ' + call.request.name });
}
function sayHelloAgain(call, callback) {
callback(null, { message: 'Hello again, ' + call.request.name });
}
function main() {
const server = new grpc.Server();
server.addService(helloProto.Greeter.service, { sayHello: sayHello, sayHelloAgain: sayHelloAgain });
server.bindAsync('0.0.0.0:50051', grpc.ServerCredentials.createInsecure(), () => {
server.start();
});
}
main();3. 实现客户端
创建 greeter_client.js 文件,包含客户端的实现:
const grpc = require('@grpc/grpc-js');
const protoLoader = require('@grpc/proto-loader');
const packageDefinition = protoLoader.loadSync('helloworld.proto', {
keepCase: true,
longs: String,
enums: String,
defaults: true,
oneofs: true
});
const helloProto = grpc.loadPackageDefinition(packageDefinition).helloworld;
function main() {
const client = new helloProto.Greeter('localhost:50051', grpc.credentials.createInsecure());
client.sayHello({ name: 'World' }, (err, response) => {
if (err) console.error(err);
else console.log('Greeting:', response.message);
});
client.sayHelloAgain({ name: 'World' }, (err, response) => {
if (err) console.error(err);
else console.log('Greeting:', response.message);
});
}
main();4. 运行服务器和客户端
确保你已经安装了所有必要的依赖:
npm install @grpc/grpc-js @grpc/proto-loader
然后,分别运行服务器和客户端:
node greeter_server.js node greeter_client.js
到此这篇关于NodeJS GRPC简单的例子的文章就介绍到这了,更多相关NodeJS GRPC例子内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
NodeJS http模块用法示例【创建web服务器/客户端】
这篇文章主要介绍了NodeJS http模块用法,结合实例形式分析了node.js创建web服务器与客户端,进行HTTP通信的相关操作技巧,需要的朋友可以参考下2019-11-11
node.js平台下利用cookie实现记住密码登陆(Express+Ejs+Mysql)
这篇文章主要介绍了node.js平台下利用cookie实现记住密码登陆(Express+Ejs+Mysql),具有一定的参考价值,感兴趣的小伙伴们可以参考一下。2017-04-04
Node.js读取本地CSV文件并且写入为JSON格式文件过程
本文介绍了使用Node.js v14.18.1读取CSV文件并处理中文乱码的方法,包括使用`fs.readdirSync`读取文件夹、`TextDecoder`处理编码、以及如何解析和处理CSV数据2026-01-01


最新评论