Maison >développement back-end >tutoriel php >Un article explique en détail l'implémentation du serveur grpc via php+roadrunner

Un article explique en détail l'implémentation du serveur grpc via php+roadrunner

藏色散人
藏色散人avant
2023-04-21 15:57:372050parcourir

Cet article vous apporte des connaissances pertinentes sur PHP. Il présente principalement comment implémenter le serveur grpc via php+roadrunner. Les amis intéressés peuvent jeter un œil ci-dessous. J'espère que cela sera utile à tout le monde.

Un article explique en détail l'implémentation du serveur grpc via php+roadrunner

Implémenter le serveur grpc via php+roadrunner

Adresse de l'entrepôt :

https://github.com/zhonghaibin/php-grpc-serve

Télécharger le code source :

git clone https://github.com/zhonghaibin/php-grpc-serve

La version php que j'utilise : php 8.2

Entrée de la ligne de commande d'installation

composer install

G et rr.exe disponible Exécutez l'entrée de ligne de commande du fichier

./vendor/bin/rr get-binary

pour démarrer le service./rr.exe serve
Un article explique en détail limplémentation du serveur grpc via php+roadrunner

client

J'utilise ApiPost pour prendre en charge les tests grpc

打开apipost客户端,新建grpc,选择导入proto  

选择项目目录的 grpc/protos/base/hello-world.proto 文件

Un article explique en détail limplémentation du serveur grpc via php+roadrunner

document de référence grpc :

roadrunner.dev /docs/plugins-grpc/2...

étapes de construction du protocole

1 Créez le fichier hello-world.proto de Protobuf selon vos propres besoins

2 Générez le fichier de classe php via hello-world.proto

这里需要下载两个可执行文件把 hello-world.proto 生成 php文件,

因为我用的是win10:

所以下载的是 protoc.exe 和 protoc-gen-php-grpc.exe 

这两个文件我放在项目里 protoc-22.3-win64 文件夹里面,如果你和我环境一样直接用我下载好的即可,其他平台请自行下载

下载地址:https://github.com/roadrunner-server/roadrunner/releases

生成php文件命令如下:./protoc.exe --plugin=protoc-gen-php-grpc.exe --php_out=./ --php-grpc_out=./ hello-world.proto

这里会在当前目录下生成两个文件夹:GPBMetadata 和 Services

把生成好的文件夹复制到 项目目录的 grpc/generated 目录下
root
├─app
│  ├─console 
│  ├─services        
│  │   ├─Task        //异步任务│  │   └─HelloService.php   //写自己的业务│  └─support
├─config
├─grpc
│ ├─generated         //使用protoc自动构建的类均存在这│ │  ├─Services       //服务统一命名空间│ │  └─GPBMetadata    //GRPC生成的元数据├ └─protos            //所有proto存在这里

Apprentissage recommandé :《Tutoriel vidéo PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer