国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

?? RPC 遠程服務(wù)調(diào)用插件

dev-2.x-dev 版本
2025-06-22 版本更新時間
2893 安裝
19 star

簡介

什么叫RPC,為什么要RPC,RPC是指遠程過程調(diào)用,也就是說兩臺服務(wù)器A、B。一個應(yīng)用部署在A服務(wù)器上,想要調(diào)用B服務(wù)器上應(yīng)用提供的函數(shù)/方法,由于不在一個內(nèi)存空間,不能直接調(diào)用,需要通過網(wǎng)絡(luò)來表達調(diào)用的語義和傳達調(diào)用的數(shù)據(jù)。

安裝

composer require tinywan/rpc

使用

服務(wù)端

新建 service/User.php 服務(wù)(目錄不存在自行創(chuàng)建)

namespace service;
class User
{
    public function get($args)
    {
        return response_rpc_json(0, '獲取成功', $args);
    }
}

客戶端

基礎(chǔ)使用

// 建立socket連接到內(nèi)部推送端口
$client = stream_socket_client('tcp://127.0.0.1:9512', $errorCode, $errorMessage);
if (false === $client) {
    throw new \Exception('rpc failed to connect: '.$errorMessage);
}
$request = [
    'class'   => 'user',
    'method'  => 'get',
    'args'    => [
        [
            'uid' => 2023,
            'username' => 'Tinywan',
        ]
    ]
];
// 發(fā)送數(shù)據(jù),注意5678端口是Text協(xié)議的端口,Text協(xié)議需要在數(shù)據(jù)末尾加上換行符
fwrite($client, json_encode($request)."\n"); 
// 讀取推送結(jié)果
$result = fgets($client, 10240000);
// 解析JSON字符串
$result = json_decode($result, true);
var_export($result);

請求響應(yīng)結(jié)果

{
    "code": 0,
    "msg": "用戶列表",
    "data": {
      "uid": 2024,
      "username": "Tinywan"
    }
}

請求響應(yīng)異常結(jié)果

{
    "code": 404,
    "msg": "接口調(diào)用類不存在",
    "data": {}
}

異常錯誤日志

[2024-08-16 14:46:26] default.ERROR: 
RPC Service Exception Message SQLSTATE[42S22]: 
Column not found: 1054 Unknown column 'to_user_id' in 'where clause'
{"error":"SQLSTATE[42S22]: 
Column not found: 1054 Unknown column 'to_user_id' in 'where clause'",
"file":"/var/www/db/PDOConnection.php","line":797} []

效果圖

截圖

贊助商