Beispiel #1
0
        {
            return json_encode($data) . "\n";
        }
        /**
         * 解析Rpc协议数据
         * @param string $bin_data
         * @return mixed
         */
        public static function decode($bin_data)
        {
            return json_decode(trim($bin_data), true);
        }
    }
}
// ==以下调用示例==
// 服务端列表
$address_array = array('tcp://127.0.0.1:2015');
// 配置服务端列表
RpcClient::config($address_array);
//$serverClient = RpcClient::instance('Zone');
//同步调用数据
//$result = $serverClient->getServerList();
//// ==异步调用==
//$serverClient->asend_getServerList();
//$result = $serverClient->arecv_getServerList();
//var_dump($result);
$onlineClient = RpcClient::instance('Online');
$result = $onlineClient->getOnline(1);
echo '<pre>';
print_r($result);
echo '</pre>';
Beispiel #2
0
<?php

include 'RpcClient.php';
//配置服务端列表
$address_array = array('127.0.0.1:6666', '127.0.0.1:6666');
RpcClient::config($address_array);
//检测是否装了swoole扩展有则用swoole_client方式,没有则用socket方式
if (extension_loaded('swoole')) {
    RpcClient::setSwooleClient();
}
// User对应/Jsonrpc/Services/User.php 中的User类
$user_client = RpcClient::instance('User');
// getInfoByUid对应User类中的getInfoByUid方法
$uid = 567;
$ret_sync = $user_client->getInfoByUid($uid);
var_dump($ret_sync);
//通过rpc操作redis的例子
$redis_client = RpcClient::instance('MyRedis');
$set_res = $redis_client->set('jsonrpc', 'hello json rpc654', 30);
var_dump($set_res);
$get_res = $redis_client->get('jsonrpc');
var_dump($get_res);
//调用不存在的函数
$list_res = $redis_client->list('jsonrpc');
var_dump($list_res);
Beispiel #3
0
<?php

/**
 * Created by linzl
 * User: linzl<*****@*****.**>
 * Date: 15/1/27
 * Time: 下午2:55
 */
date_default_timezone_set('PRC');
include_once "Clients/RpcClient.php";
$address_array = array('tcp://127.0.0.1:2015', 'tcp://127.0.0.1:2015');
// 配置服务端列表
RpcClient::config($address_array);
$uid = 567;
// User对应applications/JsonRpc/Services/User.php 中的User类
$user_client = RpcClient::instance('User');
$ret_sync = $user_client->test();
print_r($ret_sync);
exit;
// getInfoByUid对应User类中的getInfoByUid方法
#$ret_sync = $user_client->getUser();
$i = 1;
while ($i < 1000) {
    $ret_sync = $user_client->getUser();
    $i++;
}
print_r($ret_sync);
Beispiel #4
0
 public function setClassName($className)
 {
     return RpcClient::instance($className);
 }