
什么是rpc
RPC全称为Remote Procedure Call,翻译过来为“远程过程调用”。目前,主流的平台中都支持各种远程调用技术,以满足分布式系统架构中不同的系统之间的远程通信和相互调用。远程调用的应用场景极其广泛,实现的方式也各式各样。
PHP实现简单RPC,RPC连接类分享
<?php
/**
* User: Huipu
* CreateTime: 2020/07/05 上午12:2
* Description: Rpc客户端
*/
class RpcClient {
/**
* User: Huipu
* CreateTime: 2020/07/05 上午12:21
* @var array
* Description: 调用的地址
*/
private $urlInfo = array();
public static function gertss($url,$data){
// TODO: Implement __call() method.
//创建一个客户端
$client = stream_socket_client("tcp://".$url, $errno, $errstr);
if (!$client) {
exit("{$errno} : {$errstr} \n");
}
// {"method":"TaskServer.Action","params":[{"action": 1}],"id":1}
$data = $data;
//向服务端发送我们自定义的协议数据
fwrite($client, json_encode($data));
//读取服务端传来的数据
$data = fread($client, 2048);
//关闭客户端
fclose($client);
return $data;
}
}使用方法
$url='220.13.112.33'; $data = [ 'method' => 'TaskServer.Action', 'params' => [ ['action' =>2] ], 'id' => 1 ]; $res_pon=\RpcClient::gertss($url,$data);