客户端
CLI独立测试(注意命名空间以及自动加载引入)
<?php
/**
* Created by PhpStorm.
* User: xcg
* Date: 2019/2/27
* Time: 10:03
*/
include_once dirname(__DIR__) . "/vendor/autoload.php";
use EasySwoole\Rpc\Config;
use EasySwoole\Rpc\Rpc;
use EasySwoole\Rpc\Response;
$config = new Config();
//$config->setNodeManager(\EasySwoole\Rpc\NodeManager\TableManager::class);//设置节点管理器处理类,默认是EasySwoole\Rpc\NodeManager\FileManager
$rpc = new Rpc($config);
//获取所有服务节点列表
$nodeList = $config->getNodeManager()->allServiceNodes();
var_dump($nodeList);
go(function () use ($rpc) {
$client = $rpc->client();
//调用服务
$serviceClient = $client->selectService('ser1');
//创建执行任务
$serviceClient->createTask()->setAction('call1')->setArg(['arg' => 1])
->setOnSuccess(function (Response $response) {
echo ($response->getMessage()).PHP_EOL;
})->setOnFail(function () {
echo ("请求失败1!\n");
});
//创建执行任务
$serviceClient->createTask()->setAction('call3')
->setOnSuccess(function (Response $response) {
echo ($response->getMessage()).PHP_EOL;
})->setOnFail(function () {
echo ("请求失败2!\n");
});
//创建执行任务
$serviceClient2 = $client->selectService('ser2');
$serviceClient2->createTask()->setAction('call1')
->setOnSuccess(function (Response $response) {
echo ($response->getMessage()).PHP_EOL;
})->setOnFail(function () {
echo ("请求失败3!\n");
});
$client->exec();//开始执行
});