您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
hyperf实现grpc客户端
发布时间:2022-10-10 21:15:07编辑:雪饮阅读()
基于上次的hyperf实现的grpc 服务端接口。
客户端入口路由:
Router::addRoute(['GET', 'POST', 'HEAD'], '/grpc_test', 'App\Controller\IndexController@grpc_test');
客户端在web上进行请求
public function grpc_test(){
// 这个client是协程安全的,可以复用,这里的端口为grpc服务端端口
$client = new HiClient('127.0.0.1:9503', [
'credentials' => null,
]);
//整理grpc请求(向grpc服务端发送的数据(消息))
$request = new \Grpc\HiUser();
$request->setName('hyperf');
$request->setSex(1);
//使用grpc客户端发送该请求
/**
* @var \Grpc\HiReply $reply
*/
list($reply, $status) = $client->sayHello($request);
$message = $reply->getMessage();
return $message;
}
客户端请求的具体实现
<?php
namespace App\GrpcClient;
use Hyperf\GrpcClient\BaseClient;
use Grpc\HiUser;
use Grpc\HiReply;
class HiClient extends BaseClient
{
public function sayHello(HiUser $argument)
{
return $this->_simpleRequest(
'/grpc.hi/sayHello',
$argument,
[HiReply::class, 'decode']
);
}
}
关键字词:hyperf,实现,grpc,客户端