服务端
独立使用代码
<?php<?php/** * Created by PhpStorm. * User: xcg * Date: 2019/2/27 * Time: 10:00 */include_once dirname(__DIR__) . "/vendor/autoload.php";use EasySwoole\Rpc\Config;use EasySwoole\Rpc\Rpc;use EasySwoole\Rpc\Request;use EasySwoole\Rpc\Response;$config = new Config();//注册服务名称$config->setServiceName('ser1');//设置广播地址,可以多个地址$config->getAutoFindConfig()->setAutoFindBroadcastAddress(['127.0.0.1:9600']);//设置广播监听地址$config->getAutoFindConfig()->setAutoFindListenAddress('127.0.0.1:9600');//$config->setNodeManager(\EasySwoole\Rpc\NodeManager\TableManager::class);//设置节点管理器处理类,默认是EasySwoole\Rpc\NodeManager\FileManager$rpc = new Rpc($config);//注册响应方法$rpc->registerAction('call1', function (Request $request, Response $response) { //获取请求参数 var_dump($request->getArg()); //设置返回给客户端信息 $response->setMessage('response');});//注册响应方法2$rpc->registerAction('call2', function (Request $request, Response $response){});//监听/广播 rpc 自定义进程对象$autoFindProcess = $rpc->autoFindProcess('es_rpc_process_1');//创建第二个rpc服务$config2=new Config();$config2->setServiceName('ser2');$rpc2 = new Rpc($config2);//监听/广播 rpc 自定义进程对象$autoFindProcess2 = $rpc2->autoFindProcess('es_rpc_process_2');//创建http swoole服务$http = new swoole_http_server("127.0.0.1", 9525);//添加自定义进程到服务,开启进程$http->addProcess($autoFindProcess->getProcess());$http->addProcess($autoFindProcess2->getProcess());//rpc作为一个子服务运行$sub = $http->addlistener("127.0.0.1", 9527, SWOOLE_TCP);$sub2 = $http->addlistener("127.0.0.1", 9528, SWOOLE_TCP);//将swoole tcp子服务注入到rpc对象中,开始监听处理$rpc->attachToServer($sub);$rpc2->attachToServer($sub2);/** * http请求回调 */$http->on("request", function ($request, $response) { $response->end("Hello World\n");});$http->start();////rpc 作为主服务运行//$tcp = new swoole_server('127.0.0.1', 9526);//$tcp->addProcess($autoFindProcess->getProcess());//$rpc->attachToServer($tcp);//$tcp->start();