egg-server-grpc

[![NPM version][npm-image]][npm-url] [![build status][travis-image]][travis-url] [![Test coverage][codecov-image]][codecov-url] [![David deps][david-image]][david-url] [![Known Vulnerabilities][snyk-image]][snyk-url] [![npm download][download-image]][down

Usage no npm install needed!

<script type="module">
  import eggServerGrpc from 'https://cdn.skypack.dev/egg-server-grpc';
</script>

README

egg-server-grpc

NPM version build status Test coverage David deps Known Vulnerabilities npm download

依赖说明

依赖的 egg 版本

egg-server-grpc 版本 egg 1.x
1.x 😁
0.x

开启插件

// config/plugin.js
exports.eggServerGrpc = {
  enable: true,
  package: 'egg-server-grpc',
};

使用场景

  • Eggjs 中使用 grpc 服务器

  • eggjs中 由于会启动多个worker,并会关闭worker以保持稳定,故 grpc服务端口放在 agent监听 通过 egg的sendtorandom和sendtoagent来通信

Install

npm i egg-server-grpc

Example

# app/proto/hello.proro
syntax = "proto3";

package hello;

message Status {
int32 code = 1;
}

service HelloService {
rpc Echo(Status) returns (Status) {}
}

# app/service/hello.js
'use strict';

const Service = require('egg').Service;

class HelloService extends Service {
async Echo() {
    return { code: 400 };
}
}

module.exports = HelloService;
service目录中hello -> proto文件中的package
app/service/hello.js中HelloService -> proto文件中的HelloService
app/service/hello.js中HelloService中Echo方法 -> proto文件中的HelloService中 rpc Echo

详细配置

请到 config/config.default.js 查看详细配置项说明。 在配置文件中 增加 如下配置 protoPath: 'app/proto', // 这里是proto文件的目录 host: '0.0.0.0', // 这里是监听地址 port: '50055', // 这里是监听端口

单元测试

提问交流

请到 egg issues 异步交流。

License

MIT