xd/prime-rpc

v1.0.2 2018-02-08 02:53 UTC

This package is auto-updated.

Last update: 2024-09-04 19:58:53 UTC


README

Prime-rpc 是一个基础和异步的 RPC 库

安装

composer require xd/prime-rpc

示例

  1. 基于 TCP

    服务器

    <?php
    include 'vendor/autoload.php';
    $server = new \Xd\PrimeRpc\Server\TcpServer('yur server name', '0.0.0.0', '9501', 20);
    
    //bind receive event 
    \Xd\PrimeRpc\Server\IocEventServer::inject('receive', function($fd, $data){
        //do something...
     
        //output content at last
        $output = ['code' => 0, 'msg' => 'ok', 'result' => ['title' => "test={$data['test']}"]];
        return $output;
    });
    $server->start();

    客户端

    <?php
    //connect host
    $client = new Xd\PrimeRpc\Client\TcpClient('127.0.0.1', 9501);
     
    //send data
    $request1 = $client->request(['test' => '1']);
    //send data
    $request2 = $client->request(['test' => '2']);
     
    //get the second response data
    $res2 = $request2->receive();
    print_r($res2);
      
    //get the first response data
    $res1 = $request1->receive();
    print_r($res1);
  2. 基于 HTTP 服务器

    <?php
    include 'vendor/autoload.php';
    $server = new \Xd\PrimeRpc\Server\HttpServer('yur server name', '0.0.0.0', '9501', 20);
       
    //bind request event 
    \Xd\PrimeRpc\Server\IocEventServer::inject('request', function($request, $response){
        //do something...
        
        //output content at last
        $output = ['code' => 0, 'msg' => 'ok', 'result' => ['title' => "test={$request->get['test']}"]];
        return $output;
    });
       $server->start();

    客户端:推荐使用 github.com/ganxiangdong/async-http-client

  3. 管理服务器
    关闭:sh vender/src/server/bins/shutdown.sh
    重新加载:sh vender/src/server/bins/reload.sh

  4. 更多信息请访问 github.com/swoole/swoole-src