成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

gRPC的PHP客戶端

suosuopuo / 907人閱讀

摘要:工作中需要使用,服務(wù)端采用的,客戶端采用。這里主要講述客戶端。

工作中需要使用gRPC,服務(wù)端采用的python,客戶端采用PHP。這里主要講述PHP客戶端。

分為以下幾個(gè)部分:

安裝protoc

生成protobuf

安裝PHP擴(kuò)展

定義客戶端

安裝protoc

這里是mac環(huán)境

下載地址:https://github.com/protocolbu...

解壓之后進(jìn)入目錄,執(zhí)行./autogen.sh

如果報(bào)錯(cuò)的話需要安裝插件brew install automake

再次執(zhí)行./autogen.sh

./configure --prefix=/usr/local/protobuf

make && make install

最后不要忘記配置環(huán)境變量

vim ~/.bash_profile
export PROTOBUF=/usr/local/protobuf
export PATH=$PROTOBUF/bin:$PATH
source ~/.bash_profile

驗(yàn)證

protoc --version
生成protobuf文件

使用服務(wù)端的.proto文件,執(zhí)行protoc --php_out=. lottery.proto

syntax = "proto3";
package lotteryservice;
service Greeter {
    rpc lottery(lotteryReq) returns (lotteryRes){}
}

message lotteryReq {
    string param = 1;
}

message lotteryRes {
    string data = 1;
}

會(huì)生成如下目錄:

安裝PHP擴(kuò)展

gRPC擴(kuò)展: http://pecl.php.net/package/gRPC
protobuf擴(kuò)展: http://pecl.php.net/package/p...

自定義客戶端

在項(xiàng)目目錄下編寫composer.json

{
  "name": "grpc-go-php",
  "require": {
    "grpc/grpc": "^v1.3.0",
    "google/protobuf": "^v3.3.0"
  },
  "autoload":{
    "psr-4":{
      "GPBMetadata":"GPBMetadata/",
      "Lotteryservice":"Lotteryservice/"
    }
  }
}

composer install 之后會(huì)生成如下目錄:

在Lotteryservice文件夾中,創(chuàng)建lotteryServiceClient.php

_simpleRequest("/Greeter/lottery",
            $argument,
            ["LotteryservicelotteryRes", "decode"],
            $metadata, $options);
    }

}

創(chuàng)建channel文件夾,在channel文件夾下創(chuàng)建 channels.php文件,獲取client

 GrpcChannelCredentials::createInsecure()
        ]);

        return $client;
    }

}

在項(xiàng)目目錄下創(chuàng)建app.php,用于測試連接:

lotteryService();

$lotteryRequest = new LotteryservicelotteryReq();

$lotteryRequest->setParam("{"一等獎(jiǎng)": 10,"二等獎(jiǎng)":20,"三等獎(jiǎng)":30,"四等獎(jiǎng)":40}");

$lottery_res = $lotteryClient->lottery($lotteryRequest)->wait();

list($reply, $status) = $lottery_res;
$data = $reply->getData();
var_dump($data);die;

最后執(zhí)行php app.php

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/31624.html

相關(guān)文章

  • grpc - 使用 golang 帶你從頭擼一套 RPC 服務(wù)(二)

    摘要:緊接上一篇,下面用作為客戶端調(diào)用的服務(wù)端。安裝插件插件可以幫助我們自動(dòng)生成客戶端封裝了的服務(wù)接口,方便我們直接引入調(diào)用,否則只生成服務(wù)請(qǐng)求響應(yīng)的實(shí)體類,用起來不太方便。打包解包客戶端發(fā)送至服務(wù)端服務(wù)端接收數(shù)據(jù)后使用對(duì)應(yīng)的實(shí)體解包服務(wù)端 緊接上一篇,下面用PHP作為客戶端調(diào)用Go的服務(wù)端。 安裝 grpc_php_plugin 插件 grpc_php_plugin插件可以幫助我們自動(dòng)生成...

    raise_yang 評(píng)論0 收藏0
  • 帶入gRPCgRPC及相關(guān)介紹

    摘要:帶入及相關(guān)介紹原文地址帶入及相關(guān)介紹項(xiàng)目地址作為開篇章,將會(huì)介紹相關(guān)的一些知識(shí)。 帶入gRPC:gRPC及相關(guān)介紹 原文地址:帶入gRPC:gRPC及相關(guān)介紹 項(xiàng)目地址:go-grpc-example 作為開篇章,將會(huì)介紹 gRPC 相關(guān)的一些知識(shí)。簡單來講 gRPC 是一個(gè) 基于 HTTP/2 協(xié)議設(shè)計(jì)的 RPC 框架,它采用了 Protobuf 作為 IDL 你是否有過疑惑,它們都...

    AJie 評(píng)論0 收藏0
  • 帶入gRPCgRPC及相關(guān)介紹

    摘要:原文地址帶入及相關(guān)介紹項(xiàng)目地址作為開篇章,將會(huì)介紹相關(guān)的一些知識(shí)。 原文地址:帶入gRPC:gRPC及相關(guān)介紹 項(xiàng)目地址:go-grpc-example 作為開篇章,將會(huì)介紹 gRPC 相關(guān)的一些知識(shí)。簡單來講 gRPC 是一個(gè) 基于 HTTP/2 協(xié)議設(shè)計(jì)的 RPC 框架,它采用了 Protobuf 作為 IDL 你是否有過疑惑,它們都是些什么?本文將會(huì)介紹一些常用的知識(shí)和概念,更詳...

    y1chuan 評(píng)論0 收藏0
  • 從實(shí)踐到原理,帶你參透 gRPC

    摘要:原文地址從實(shí)踐到原理,帶你參透在語言中大放異彩,越來越多的小伙伴在使用,最近也在公司安利了一波,希望能通過這篇文章能帶你一覽的愛與恨。幀的主要作用是裝填主體信息,是數(shù)據(jù)幀。 showImg(https://segmentfault.com/img/remote/1460000019552245); 原文地址:從實(shí)踐到原理,帶你參透 gRPC gRPC 在 Go 語言中大放異彩,越來越多...

    geekidentity 評(píng)論0 收藏0
  • Python gRPC 入門

    摘要:消息格式有三個(gè)字段,在消息中承載的數(shù)據(jù)分別對(duì)應(yīng)于每一個(gè)字段。所以應(yīng)該為那些頻繁出現(xiàn)的消息元素保留之內(nèi)的標(biāo)識(shí)號(hào)。示例編譯這里我們用編譯一下,看得到什么文件名使用以下命令編譯生成了兩個(gè)文件此文件包含生成的和類。 gRPC 一開始由 google 開發(fā),是一款語言中立、平臺(tái)中立、開源的遠(yuǎn)程過程調(diào)用(RPC)系統(tǒng)。 本文通過一個(gè)簡單的 Hello World 例子來向您介紹 gRPC 。 gR...

    ideaa 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<