Open twn39 opened 4 years ago
PHP Grpc 暂时不支持 Server 端,只支持生成 Client 代码,而且需要通过 grpc_php_plugin 插件手动将 protobuf 文件转换成 PHP 代码。
编译:
protoc --proto_path=proto --php_out=src --grpc_out=src --plugin=protoc-gen-grpc=../grpc/bins/opt/grpc_php_plugin proto/echo.proto
生成之后将其加入 composer autoload ,示例:
"autoload": {
"psr-4": {
"App\\": "src/App",
"GPBMetadata\\": "src/GPBMetadata"
}
},
根据实际目录定义 autoload 加载方式,确保能够正确引入 PHP 文件,依赖:
"require": {
"grpc/grpc": "^1.27",
"google/protobuf": "^3.11"
}
客户端代码:
<?php
require "vendor/autoload.php";
$client = new \App\EchoServiceClient("0.0.0.0:50051", [
'credentials' => Grpc\ChannelCredentials::createInsecure(),
]);
list($res, $status) = $client->Greet(new \App\PBEmpty())->wait();
var_dump($res->getMessage());
echo "-------------";
var_dump($status);
Node server :
Node 端代码会自动编译 protobuf 文件,所以不需要手动生成。
依赖: