RPCとは
RPCのフルネームはRemoteProcedure Callで、中国語でリモートプロシージャコールに変換されます。実際、これはアーキテクチャ設計またはソリューションとして理解できます。
RPCを使用すると、ローカルメソッドを呼び出すのと同じように他のマシンのメソッドを呼び出すことができ、ユーザーはサーバーとサーバー間の通信に気付くことはありません。RPCは、マイクロサービスで重要な役割を果たします。
一般的な操作
プロセスを強制終了するには、現在のポート8887でプロセスIDを表示します
netstat -nap |grep 8887
パネルを占有せずにswooleのサーバーサービスを有効にする
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);