php 使用 grpc
编辑于 2024-01-04 21:42:27 阅读 556
前提
- protoc(the protobuf compiler binary to generate PHP classes for your messages and service definition.)
- grpc_php_plugin(a plugin for protoc to generate the service stub classes.)
- grpc(PHP扩展)
- protobuf(PHP扩展)
- grpc/grpc(composer包)
- google/protobuf(composer包)
其中protoc
,grpc_php_plugin
,grpc
,protobuf
,这4个最耗时(正常需要30~40分钟),我做了一个php-fpm 8.1.9
的镜像,大家可以参考:
https://github.com/chudaozhe/grpc-php
测试
服务端demo
https://grpc.io/docs/languages/node/quickstart/
您只能在 PHP 中创建 gRPC 客户端。使用另一个 用于创建 gRPC 服务器的语言。
所以咱使用node创建服务端
# Clone the repository to get the example code
$ git clone -b @grpc/grpc-js@1.9.0 --depth 1 --shallow-submodules https://github.com/grpc/grpc-node
# Navigate to the node example
$ cd grpc-node/examples
# Install the example's dependencies
$ npm install
# Navigate to the dynamic codegen "hello, world" Node example:
$ cd helloworld/dynamic_codegen
运行 服务端 程序
cd examples/helloworld/dynamic_codegen
node greeter_server.js
客户端demo(PHP)
https://github.com/chudaozhe/php-demo/tree/master/grpc