简介
polix-rpc 是一个基于 JSON-RPC 协议的远程过程调用(RPC)库,可用于 JavaScript 程序的服务器端和客户端间通讯,也可以在 Web 浏览器中使用。该库主要的特点是使用简单、功能强大、可扩展性好。
安装
在终端里使用 npm 包管理器进行安装:
$ npm install polix-rpc
使用方法
- 引入库:
const polixRpc = require('polix-rpc');
- 创建服务器:
const server = polixRpc.createServer({ // 这里填写服务器配置 });
- 在服务器上导出服务:
server.expose('serviceName', { // 这里填写服务方法 });
- 启动服务器:
server.listen(8080, () => { console.log('服务器已启动'); });
- 创建客户端:
const client = polixRpc.createClient({ // 这里填写服务器地址和端口 });
- 调用远程服务:
-- -------------------- ---- ------- -------------------------- ------------- - -- ---------- -- ----- ------- -- - -- ----- - ------------------------- ----- - ---- - --------------------- -------- - ---
配置
以下是服务器端和客户端的配置属性:
服务器端配置
createServer(options: ServerOptions): RpcServer
选项 | 类型 | 描述 |
---|---|---|
host |
string |
服务器监听地址,默认是 0.0.0.0 (表示监听本机所有网卡)。 |
port |
number |
服务器监听端口,默认是 8080 。 |
maxRequestSize |
number |
收到的请求最大字节数,默认是 1024 * 1024 (即 1MB)。 |
maxResponseSize |
number |
发送的响应最大字节数,默认是 1024 * 1024 (即 1MB)。 |
pingInterval |
number |
心跳检测间隔(毫秒),默认是 30000 (即 30 秒)。 |
pingTimeout |
number |
心跳超时时间(毫秒),默认是 10000 (即 10 秒)。 |
requestTimeout |
number |
请求超时时间(毫秒),默认是 60000 (即 60 秒)。 |
responseTimeout |
number |
响应超时时间(毫秒),默认是 60000 (即 60 秒)。 |
handleErrors |
boolean |
是否处理方法调用时的错误,默认为 false 。 |
strictMode |
boolean |
是否开启严格模式,即只允许导出的方法被调用,默认为 true 。 |
alreadyListening |
boolean |
是否已经在监听了,如果是则不自动监听。 |
serializeFunctions |
boolean |
是否序列化函数,一般不需要开启。 |
客户端配置
createClient(options: ClientOptions): RpcClient
选项 | 类型 | 描述 |
---|---|---|
host |
string |
服务器地址,默认是 localhost 。 |
port |
number |
服务器端口,默认是 8080 。 |
maxRequestSize |
number |
发送请求的最大字节数,默认是 1024 * 1024 (即 1MB)。 |
maxResponseSize |
number |
接收响应的最大字节数,默认是 1024 * 1024 (即 1MB)。 |
pingInterval |
number |
心跳检测间隔(毫秒),默认为 0 (不检测)。 |
pingTimeout |
number |
心跳超时时间(毫秒),默认为 0 (不检测)。 |
requestTimeout |
number |
请求超时时间(毫秒),默认为 60000 (即 60 秒)。 |
示例代码
服务器端:
-- -------------------- ---- ------- ----- -------- - --------------------- ----- ------ - ----------------------- ----- ---------- ----- ----- --- -- -------- -------------------- - ----- ------ -- - ------ - - -- -- --- ------------------- -- -- - ------------------------ ---- ----- ---
客户端:
-- -------------------- ---- ------- ----- -------- - --------------------- ----- ------ - ----------------------- ----- ------------ ----- ----- --- ------------------ ------ --- --- ----- ------- -- - -- ----- - ------------------------- ----- - ---- - --------------------- -------- - ---
输出结果:
服务返回结果 3
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600668efd9381d61a3540cf8