什么是RPC
RPC全称Remote Procedure Call,中文译为远程过程调用,其实你可以把它理解为是一种架构性上的设计,或者是一种解决方案。
通过RPC我们可以像调用本地方法一样调用别的机器上的方法,用户将无感服务器与服务器之间的通讯。RPC在微服务当中起到相当大的作用.
常用操作
查看当前8887端口下的进程id,以便kill掉进程
netstat -nap |grep 8887
不占用面板的方式启用swoole的server服务
nohup php swoole_server.php user >/dev/null 2>&1 &
swoole_server.php
<?php
//创建tcp服务
$serv = new swoole_server('127.0.0.1', 8887);
$serv->set(array('worker_num' => 2));
$serv->on("receive", function ($serv, $fd, $from_id, $data) {
//$data 接受客户端发送的数据
$data = json_decode($data, true);
$site = $data['site'];
$action = $data['action'];
$result['site'] = $site;
print_r($result);
$result['action'] = $action;
//给客户端发送数据
$serv->send($fd, json_encode(['data' => $result]));
});
$serv->start();
swoole_client.php
<?php
//客户端:
$cli = new swoole_client(SWOOLE_SOCK_TCP);
$cli->connect('127.0.0.1', 8887);
$data=json_encode(['site'=>'user','action'=>'index']);
$cli->send($data);
$result=$cli->recv();//接收消息
$cli->close();
var_dump($result);