wrpc

Simple node RPC framework.

Usage no npm install needed!

<script type="module">
  import wrpc from 'https://cdn.skypack.dev/wrpc';
</script>

README

wrpc

简单的远程函数调用框架。

log

  • v0.0.1 基本的远程调用能力。
  • v0.0.2 客户端掉线重连能力。
  • v0.0.3 添加错误码字段。

使用

调用方:

let rpc = require('wrpc');

let funcDef = {
    add: (a, b) => {return a+b;}
};

let cfg = {
  "type": "master", //本地
  "name": "master",
  "server": {
    "ip": "127.0.0.1",
    "port": 10001
  }
};

let m = new rpc(funcDef, cfg);
m.init();

//执行远程调用
m.call('add', [1, 2], (res) => {
    console.log(res);
}, (err) => {
    console.log(err);
})

被调用方(远程):

let rpc = require('wrpc');

let funcDef = {
    add: (a, b) => {return a+b;}
};

let cfg = {
  "type": "slave",  //远程
  "name": "worker1",
  "server": {
    "ip": "127.0.0.1",
    "port": 10001
  }
};

let s = new rpc(funcDef, cfg);
s.init();

配置说明


{
  "type": "slave",
  "name": "worker1",
  "server": {
    "ip": "127.0.0.1",
    "port": 10001,
    "retry": true,
    "maxRetryTimes": 10
  }
}

字段 类型 必须 说明
type string master 或 slave,用于表示调用方与被调用方
name string 服务名
server object 服务配置
server --> ip string 服务地址
server --> port number 服务端口
server --> retry boolean 是否尝试重连,只对于被调用方服务生效
server --> maxRetryTimes number 最大重试次数,只对于开启了尝试重连的被调用方服务生效