最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

NodeJS GRPC簡(jiǎn)單的示例詳解

 更新時(shí)間:2024年10月16日 09:38:04   作者:田猿筆記  
本文介紹了如何使用NodeJS GRPC,包括.proto文件的定義、客戶端和服務(wù)器的實(shí)現(xiàn),首先,創(chuàng)建.proto文件定義服務(wù)和消息,然后實(shí)現(xiàn)客戶端greeter_client.js文件,最后運(yùn)行服務(wù)器和客戶端,通過(guò)這篇文章,你可以快速掌握NodeJS GRPC的基礎(chǔ)使用方法

1. 定義 .proto 文件

首先,創(chuàng)建一個(gè) .proto 文件,定義服務(wù)和消息:

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. 實(shí)現(xiàn)服務(wù)器
創(chuàng)建 `greeter_server.js` 文件,包含服務(wù)的實(shí)現(xiàn):
```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. 實(shí)現(xiàn)客戶端

創(chuàng)建 greeter_client.js 文件,包含客戶端的實(shí)現(xiàn):

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. 運(yùn)行服務(wù)器和客戶端

確保你已經(jīng)安裝了所有必要的依賴:

npm install @grpc/grpc-js @grpc/proto-loader

然后,分別運(yùn)行服務(wù)器和客戶端:

node greeter_server.js
node greeter_client.js

到此這篇關(guān)于NodeJS GRPC簡(jiǎn)單的例子的文章就介紹到這了,更多相關(guān)NodeJS GRPC例子內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

临猗县| 文水县| 安康市| 保康县| 富源县| 连南| 深水埗区| 昌吉市| 广宗县| 昂仁县| 平凉市| 广水市| 漳平市| 宁津县| 哈尔滨市| 奉贤区| 革吉县| 鱼台县| 凌源市| 新竹市| 永新县| 兴海县| 重庆市| 东平县| 泽州县| 黄山市| 荔波县| 定远县| 醴陵市| 陇西县| 齐河县| 阳朔县| 贵南县| 宜城市| 林甸县| 康定县| 女性| 集贤县| 江孜县| 焦作市| 石首市|