Skip to content
官方QQ交流群
技术交流1:87208295   点此加入
技术交流2:787747122   点此加入
官网
云控制台
开放平台
关注微信公众号
代码仓库: 码云

RPC客户端

客户端同步调用

php

$user_client = loadRpcClientInstance('User');
// getInfoByUid对应User类中的getInfoByUid方法
$res1 = $user_client->getInfoByUid(123);
$res2 = $user_client->getInfoByUid(333);
$user_client1 = loadRpcClientInstance('User')->getInfoByUid(1111);
$user_client2 = loadRpcClientInstance('User')->getInfoByUid(2222);
var_dump($res1, $res2,$user_client, $user_client1, $user_client2);
// $blog_client = loadRpcClientInstance('Blog');
// for ($i = 0; $i < 15; $i++) {
//     # code...
//     $blog_res = $blog_client->getByBlogId($i);
//     var_dump($blog_res);
// }
var_dump('--');

$user_client = loadRpcClientInstance('User');
// getInfoByUid对应User类中的getInfoByUid方法
$res1 = $user_client->getInfoByUid(123);
$res2 = $user_client->getInfoByUid(333);
$user_client1 = loadRpcClientInstance('User')->getInfoByUid(1111);
$user_client2 = loadRpcClientInstance('User')->getInfoByUid(2222);
var_dump($res1, $res2,$user_client, $user_client1, $user_client2);
// $blog_client = loadRpcClientInstance('Blog');
// for ($i = 0; $i < 15; $i++) {
//     # code...
//     $blog_res = $blog_client->getByBlogId($i);
//     var_dump($blog_res);
// }
var_dump('--');

或者

php
<?php
// User对应服务端配置中service里面的映射类,$config为配置文件的绝对路径或数组

$config = 'client_config.php';

$user_client = shiyunWorker\rpc\RpcClient::instance('User',$config);

// getInfoByUid对应User类中的getInfoByUid方法
$ret_sync = $user_client->getInfoByUid($uid);
<?php
// User对应服务端配置中service里面的映射类,$config为配置文件的绝对路径或数组

$config = 'client_config.php';

$user_client = shiyunWorker\rpc\RpcClient::instance('User',$config);

// getInfoByUid对应User类中的getInfoByUid方法
$ret_sync = $user_client->getInfoByUid($uid);

客户端异步调用

调用的方法添加"asend_"前缀,接收数据时添加"arecv_"前缀。

php
<?php
// User对应服务端配置中service里面的映射类,$config为配置文件的绝对路径或数组

$config = 'client_config.php';

$user_client = shiyunWorker\rpc\RpcClient::instance('User',$config);

// getInfoByUid对应User类中的getInfoByUid方法
//异步调用User::getInfoByUid方法
$user_client = $user_client->asend_getInfoByUid($uid);

/**
 * 这里是其它的业务代码
 * ....................
 * ....................
 */

// 需要数据的时候异步接收数据
$ret_async2 = $user_client->arecv_getInfoByUid($uid);
<?php
// User对应服务端配置中service里面的映射类,$config为配置文件的绝对路径或数组

$config = 'client_config.php';

$user_client = shiyunWorker\rpc\RpcClient::instance('User',$config);

// getInfoByUid对应User类中的getInfoByUid方法
//异步调用User::getInfoByUid方法
$user_client = $user_client->asend_getInfoByUid($uid);

/**
 * 这里是其它的业务代码
 * ....................
 * ....................
 */

// 需要数据的时候异步接收数据
$ret_async2 = $user_client->arecv_getInfoByUid($uid);

使用

客户端调用 rpc 调用的是Applications/JsonRpc/Services/User.php 中 User类的getInfoByUid方法。

php
<?php


loadRpcClientInstance('addons/xxx','XxxTest');

RpcClient::instance('User')->getInfoByUid($uid);
<?php


loadRpcClientInstance('addons/xxx','XxxTest');

RpcClient::instance('User')->getInfoByUid($uid);

客户端同步调用:

php
<?php
include_once 'yourClientDir/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');
// 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.1: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);

客户端异步调用:

RpcClient支持异步远程调用

php
<?php
include_once 'yourClientDir/RpcClient.php';
// 服务端列表
$address_array = array(
  'tcp://127.0.0.1:2015',
  'tcp://127.0.0.1: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);

这里是其他业务逻辑
<?php
include_once 'yourClientDir/RpcClient.php';
// 服务端列表
$address_array = array(
  'tcp://127.0.0.1:2015',
  'tcp://127.0.0.1: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);

这里是其他业务逻辑

Copyright © 2017 10yun.com | 十云提供计算服务-IPV6 | ctocode组开发