npm 包 polix-rpc 使用教程

阅读时长 6 分钟读完

简介

polix-rpc 是一个基于 JSON-RPC 协议的远程过程调用(RPC)库,可用于 JavaScript 程序的服务器端和客户端间通讯,也可以在 Web 浏览器中使用。该库主要的特点是使用简单、功能强大、可扩展性好。

安装

在终端里使用 npm 包管理器进行安装:

使用方法

  1. 引入库:
  1. 创建服务器:
  1. 在服务器上导出服务:
  1. 启动服务器:
  1. 创建客户端:
  1. 调用远程服务:
-- -------------------- ---- -------
-------------------------- ------------- -
  -- ----------
-- ----- ------- -- -
  -- ----- -
    ------------------------- -----
  - ---- -
    --------------------- --------
  -
---

配置

以下是服务器端和客户端的配置属性:

服务器端配置

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 秒)。

示例代码

服务器端:

-- -------------------- ---- -------
----- -------- - ---------------------

----- ------ - -----------------------
  ----- ----------
  ----- -----
---

-- --------
-------------------- -
  ----- ------ -- -
    ------ - - --
  --
---

------------------- -- -- -
  ------------------------ ---- -----
---

客户端:

-- -------------------- ---- -------
----- -------- - ---------------------

----- ------ - -----------------------
  ----- ------------
  ----- -----
---

------------------ ------ --- --- ----- ------- -- -
  -- ----- -
    ------------------------- -----
  - ---- -
    --------------------- --------
  -
---

输出结果:

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600668efd9381d61a3540cf8

纠错
反馈