数据库 - Model 前置说明
官方开源项目 抓取代理IP

介绍

SW-X的RPC服务,是基于TCP通讯协议实现。

客户端的节点获取使用评分机制,平均获取可用的服务节点。
Web服务中心提供定时轮询检测服务是否故障,并会通过生命周期回调进行相关消息通知。
同时,同一个服务可以配置多个节点,方便扩展应用负载。

数据交互格式

RPC支持AES加密传输,在未启用加密前,客户端请求的数据包必须是json格式,数据规范如下:

[
    'class' => '路由地址',
    'function' => '服务接口名称',
    'headers' => '请求头-数组格式',
    'param' => '请求参数-数组格式',
    'task' => '是否异步请求-bool',
    'callback' => '异步请求的通知地址',
    'callback_type' => '异步请求通知的HTTP-method类型',
]

而RPC服务端返回的数据格式也是json格式,若开启AES加密传输,RPC服务的返回内容也会被加密,未加密前的数据规范如下:

[
    'status' => '状态码',
    'msg' => '说明',
    'data' => '服务返回值'
]

若请求成功,则status状态码为200,其余状态码均表示请求失败。
data内容则为RPC服务的return数据。

注意:开发者不需要关心RPC服务的底层交互逻辑,这里只是用于介绍服务与客户端之间的数据交互方式。

数据加解密

RPC的数据传输,默认开启了AES加密方式,若需要明文传输,可以在/config/rpc.php配置文件中,将aes_status改为false即可。
注意:当客户端 或 服务端,开启 或 关闭加密方式时,另一端必须保持参数一致。

AES加密相关的配置参数如下:

return [
    // 是否启用数据传输加密
    'aes_status'   => true,
    // 数据加密方式
    'aes_method'   => 'AES-128-ECB',
    // 加密密钥
    'aes_key'      => 'swoolex',
    // 加密向量
    'aes_iv'       => '',
]

RPC交互设计图

SW-X

企业级 - 高性能 PHP 框架

最后更新:2年前 . 作者-小黄牛

本篇目录