第三课时:php之rpc远程调用

服务端

vim rpcserver.php
'.$path.PHP_EOL;
        if(file_exists($path))
        {
            require_once $path;
            $classes=get_declared_classes();
            $obj_class_name=end($classes);
            $obj=new $obj_class_name();//实例化
            $result="";
            if(preg_match("/EXEC\s(.*?)\s/i",$buf,$matchs)) {
                $methodName=$matchs[1];//获取自定义协议中的方法名
                $result=$obj->$methodName();
                socket_write($client,$result);
            } else {
                foreach(get_class_methods($obj) as $method) {
                    if($result!="") $result.=",";
                    $result.='"method":"'.$method.'"';
                }
                $result="{".$result."}";
                socket_write($client,$result);
            }
        } else {
            socket_write($client,"no service");
        }
    } else {
        socket_write($client,"404");
    }
    socket_close($client);
}
socket_close($server);

客户端

vim rpcclient.php

调用类准备

  • 在当前目录下新建service文件夹
  • 在service目录下新建调用类
vim Test.php

你可能感兴趣的:(第三课时:php之rpc远程调用)