polix-rpc

rpc plugin for polix

Usage no npm install needed!

<script type="module">
  import polixRpc from 'https://cdn.skypack.dev/polix-rpc';
</script>

README

polix-rpc

rpc plugin for polix

Travis

架构图

polix-rpc

Get Start

Kirito File

# test

service testService {
  method ping (reqMsg, resMsg)
}

struct reqMsg {
  @1 age = Int16;
  @2 name = Text;
}

struct resMsg {
  @1 age = Int16;
  @2 name = Text;
}

Server

'use strict';

const pRPC = require('polix-rpc');
const path = require('path');
const kiritoProto = './protocol/test.kirito';
const server = new pRPC.Server();
const proto = pRPC.load(path.join(__dirname, kiritoProto));

function test(call, cb) {
  cb(null, {age: call.age, name: call.name});
}

server.addKiritoService(proto.testService, {ping: test});

server.listen(10003);

Client

'use strict';

const pRPC = require('polix-rpc');
const path = require('path');
const kiritoProto = './protocol/test.kirito';
const proto = pRPC.load(path.join(__dirname, kiritoProto));
const client =  new pRPC.Client({host: 'localhost', port: 10003}, proto.testService);

client.ping({age: 23, name: 'Ricky 泽阳'}, function (err, result) {
  if (err) {
    throw new Error(err.message);
  }
  console.log(result);
});

Author

polix-rpc © Ricky 泽阳, Released under the MIT License.