node.js

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > node.js > NodeJS GRPC例子

NodeJS GRPC简单的示例详解

作者:田猿笔记

本文介绍了如何使用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例子内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文