EasySwoole RPC5.x 服务

  安装 composer require easyswoole/rpc=5.x

...
客户端
文档上没有写这个

    $serviceNode = new \EasySwoole\Rpc\Server\ServiceNode();
    $serviceNode->setIp('你的IP');
    $serviceNode->setPort('10001');
    $ctx1->setServiceNode($serviceNode);

...

    $config = new \EasySwoole\Rpc\Config();
    $rpc = new \EasySwoole\Rpc\Rpc($config);
    
    $ret = [];
    $client = $rpc->client();
    // client 全局参数
    $client->setClientArg([1,2,3]);
    /**
     * 调用商品列表
     */
    $ctx1 = $client->addRequest('BaseAdmin.AdminModule.list');
    
    // 设置请求参数
    $ctx1->setArg(['a','b','c']);
    $serviceNode = new \EasySwoole\Rpc\Server\ServiceNode();
    $serviceNode->setIp('你的IP');
    $serviceNode->setPort('端口');
    $ctx1->setServiceNode($serviceNode);
    
    //设置调用成功执行回调
    $ctx1->setOnSuccess(function (Response $response) use (&$ret) {
        var_dump( $response->getMsg());
        var_dump( $response->getResult());
        $ret[] = [
            'list' => [
                'msg' => $response->getMsg(),
                'result' => $response->getResult()
            ]
        ];
    })->setOnFail(function (Response $response){
        var_dump('错误');
        var_dump( $response);
        var_dump( $response->getResult());
    });
     // 执行调用
     $client->exec();
     $this->writeJson(200, $ret);

服务端和文档一样的写就好

  protected static function rpcServices() {
   
     ###### 注册 rpc 服务 ######
    /** rpc 服务端配置 */
    $config = new \EasySwoole\Rpc\Config();
    $config->setOnException(function (\Throwable $throwable) {
       var_dump($throwable);
    });

    $serverConfig = $config->getServer();
    // 单机部署内部调用时可指定为 127.0.0.1
    // 分布式部署时多台调用时请填 0.0.0.0
    $serverConfig->setServerIp('127.0.0.1');
    // 设置监听地址及端口
    $serverConfig->setListenAddress('0.0.0.0');
    $serverConfig->setListenPort('9600');

     /** @var \EasySwoole\Rpc\Config $config */
    $assistConfig = $config->getAssist();

    // 服务定时自刷新到节点管理器
    $assistConfig->setAliveInterval(5000);
    // 广播进程设置
    $serviceFinderConfig = $assistConfig->getUdpServiceFinder();

    // 监听地址和端口
    $serviceFinderConfig->setEnableListen(true);
    $serviceFinderConfig->setListenAddress('0.0.0.0');
    $serviceFinderConfig->setListenPort(9600);

    // 设置广播地址
    // $serviceFinderConfig->setEnableBroadcast(true);
    // $serviceFinderConfig->setBroadcastAddress(['127.0.0.1:9600', '127.0.0.1:9601']);
    // $serviceFinderConfig->setBroadcastInterval(5000); // 5s 广播一次
    // rpc 具体配置请看配置章节
    $rpc = new \EasySwoole\Rpc\Rpc($config);

    // 创建  服务
    $baseAdminService = new \App\RpcService\BaseAdmin();
    // 添加 Admin 模块到 baseAdminService 服务中
    $baseAdminService->addModule(new \App\RpcService\AdminModule());
    // 添加 baseAdminService 服务到服务管理器中
    $rpc->serviceManager()->addService($baseAdminService);

    // 注册 rpc 服务
    $rpc->attachServer(ServerManager::getInstance()->getSwooleServer());


}

你可能感兴趣的:(EasySwoole RPC5.x 服务)