https://github.com/xioayangguang/workerman-http2
已支持h2, h2c
127.0.0.1 xxxxxxxx.cn
'ssl' => [
'local_cert' => './draw.xxx.cn_bundle.pem', //修改成自己的路径
'local_pk' => './draw.xxx.cn.key', // 修改成自己的路径
]
composer install
php http2_server_h2 start (常见浏览器只支持此模式)
已支持grpc的四种模式
简单模式
服务端流模式
客户端流模式
双向流模式
下载
https://github.com/xioayangguang/workerman_grpc_plugin
编译后 放入到系统可执行目录里面
composer install
protoc --php_out=. --workerman_out=. hello.proto
具体可参考 proto/GreeterServiceExample.php
php grpc.php start
运行golang编写的grpc客户端
cd example-go-client && go run main.go
or
cd example-go-client && ./main.exe
虽没看懂,感觉很高端
目前workerman本身支持http1.1文本协议,这个是在workerman上实现http2,http2是二进制协议,需要知道http2的各种帧及格式,还有各种帧的协作,流的意义等,相对较为复杂。grpc又是基于http2。要看懂,需要懂http2协议的二进制协议。要看懂grpc如何基于http2运作起来的,其中包括简单模式,客户端流模式,客户端流模式,双向流模式等东西, 如果想要让workerman或者php支持grpc服务端就可以研究一下。我只是实现了底层协议,并不能让它可以拿来就用,使用者还需要实现grpc路由分发等功能。
感谢回复!抽空研究一下
666
基于workerman,感谢walkor
牛逼,那这个后面可以用作PHP grpc的服务端了?感觉webman未来可以做微服务框架了哎?
我也想把grpc服务集成到webman中去,目前gRPC官网只有生成php客户端代码。网上说好像php-fpm原因,php的grpc实现不了?
这就是php实现的grpc服务端,目前我没有维护,你可以自己拿去研究。只要实现了http2,grpc协议很简单。