workerman-json-rpc

JSON (JavaScript Object Notation)是一種用于在組件間交互信息的數據交換格式,其是以JavaScript 為基礎的數據表示語言。既方便于人的讀寫習慣,又有利于計算機的解析和生成。

Yy4080私人影院 RPC(Remote Procedure Call)是遠程調用,既客戶端通過某種協議向服務器發起請求并獲得結果。RPC使得開發分布式網絡程序非常方便,并且能極大限度的將網絡系統的各個部分解耦,方便后續開發、維護。

workerman-json-rpc是一個以workerman作為服務器容器,使用Json作為協議簡單高效的RPC遠程調用框架。

下載

下載Json RPC遠程調用框架

  下載ZIP壓縮文件 下載9727次

特性

  • 使用PHP開發
  • PHP多進程
  • 支持libevent事件輪詢庫,支持高并發
  • 支持服務平滑重啟
  • 支持PHP文件更新檢測及自動加載
  • 使用json作為協議,開發調試非常高效
  • 集成統計監控模塊,方便查看服務調用量、成功率、耗時等情況
  • 自帶PHP客戶端,支持異步并發調用,實現并行計算

服務端開發示例

創建文件./applications/JsonRpc/Services/User.php

<?php
class User
{
    public static function 
getInfoByUid($uid)
    {
        
// ....
    
}

    public static function 
getEmail($uid)
    {
        
// ...
    
}
}

啟動服務如圖:

php start.php start -d

php json rpc 啟動界面

客戶端使用示例

客戶端文件位置Applications/JsonRpc/Clients/RpcClient.php,拷貝到項目任意位置即可使用

客戶端同步調用

<?php
include_once 'yourClientDir/RpcClient.php';

$address_array = array(
          
'tcp://127.0.0.1:2015',
          
'tcp://127.0.0.2:2015'
          
);
// 配置服務端列表
RpcClient::config($address_array);

$uid 567;

// User對應applications/JsonRpc/Services/User.php 中的User類
$user_client RpcClient::instance('User');

// getInfoByUid對應User類中的getInfoByUid方法
$ret_sync $user_client->getInfoByUid($uid);

客戶端異步調用

<?php
include_once 'yourClientDir/RpcClient.php';
// 服務端列表
$address_array = array(
  
'tcp://127.0.0.1:2015',
  
'tcp://127.0.0.2:2015'
  
);
// 配置服務端列表
RpcClient::config($address_array);

$uid 567;
$user_client RpcClient::instance('User');

// 異步調用User::getInfoByUid方法
$user_client->asend_getInfoByUid($uid);
// 異步調用User::getEmail方法
$user_client->asend_getEmail($uid);

這里是其它的業務代碼
....................
....................

// 需要數據的時候異步接收數據
$ret_async1 $user_client->arecv_getEmail($uid);
$ret_async2 $user_client->arecv_getInfoByUid($uid);

這里是其他業務邏輯

初始化(端口及進程數)

初始化文件位置 ./Applications/JsonRpc/start.php

workerman-json-rpc集成了統計監控模塊,界面如下(地址:http://ip:55757 demo

json rpc統計監控系統界面

相關連接

Yy4080私人影院

版權所有 成都風禾網絡科技有限公司


Powered by web-msg-sender!




聯系我們
  • QQ群1:257046084 (2000人已滿)
    QQ群2:137410824 (2000人已滿)
    QQ群3:527941005 (2000人已滿)
    QQ群4:172789145 (2000人已滿)
    QQ群5:605328640 (2000人已滿)
    QQ群6:532976970 (2000人已滿)
    QQ群7:679148501 (2000人已滿)
    QQ群8:812483358 (2000人已滿)
    QQ群9:645569639 (2000人已滿)
    QQ群10:549059456 (2000人)
    游戲開發群:564297822(2000人)
    提示:一個人只能加一個群哦
    郵箱:walkor#workerman.net