egg-grpc-client

1.8.1 • Public • Published

egg-grpc-client

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

Install

$ npm i egg-grpc-client --save

Usage

// {app_root}/config/plugin.js
exports.grpcClient = {
  enable: true,
  package: 'egg-grpc-client',
};

Configuration

// {app_root}/config/config.default.js
 
exports.grpcClient = {
    loaderOption: {
        keepCase: true,
        longs: String,
        enums: String,
        defaults: true,
        oneofs: true
    },
    client: {
        protoPath: 'app/grpc',
        host: '0.0.0.0',
        port: '50051'
    }   ////app.grpcClient
    
    
    // clients: {
    //     server1: {
    //         protoPath: 'app/grpc',
    //         host: '0.0.0.0',
    //         port: '50051'
    //     },  //app.grpcClient.get('server1')
    //     server2:{
    //         protoPath: 'app/grpc',
    //         host: '0.0.0.0',
    //         port: '50051'
    //     }  //app.grpcClient.get('server2')
    // }
};

see config/config.default.js for more detail.

Example

// {app_root}/config/config.default.js

exports.grpcClient = {
    loaderOption: {
        keepCase: true,
        longs: String,
        enums: String,
        defaults: true,
        oneofs: true
    },
    clients: {
        passport:{
         protoPath: 'app/grpcClient/passport',
         host: '0.0.0.0',
         port: '50051'
        }
    }   
};


//{app_base}/app/grpcClient/passport/ProfileService.proto
    syntax = "proto3";
    
    package passport.profile;
    
    service ProfileService {
        rpc getUserInfo (UserID) returns (UserInfo) {
        }
    }
    
    service ProfileService2 {
        rpc getUserInfo (UserID) returns (UserInfo) {
        }
    }
    
    message UserID {
        string userId = 1;
    }
    
    message UserInfo {
        string userId = 1;
        string username = 2;
        string avatar = 3;
        string nickname = 4;
        string gender = 5;
    }
    
    //use
    
    app.grpcClient.get('passport').passport.profile.ProfileService.getUserInfo({userId: '230371e2-eb07-4b2b-aa61-73fd27c5387e'}).then((res) => {
                console.log(res)
            }).catch((e) => {
                console.log(e)
            })


   //app.[passport.profile].* ==  `package passport.profile` in *.proto ;

Server

Please open an issue egg-grpc-server.

Questions & Suggestions

Please open an issue here.

License

MIT

Package Sidebar

Install

npm i egg-grpc-client

Weekly Downloads

0

Version

1.8.1

License

MIT

Unpacked Size

12.3 kB

Total Files

7

Last publish

Collaborators

  • tristanwong