1 Star 0 Fork 55

xiayu/srpc_1

forked from xiayu/srpc 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
.github/workflows
benchmark
docs
en
images
docs-01-idl.md
docs-02-service.md
docs-03-server.md
docs-04-client.md
docs-05-context.md
docs-06-workflow.md
docs-07-http.md
docs-08-tracing.md
docs-09-metrics.md
rpc.md
wiki.md
src
test
third_party
tutorial
.editorconfig
.gitignore
.gitmodules
BUILD
CMakeLists.txt
CMakeLists_Headers.txt
CODE_OF_CONDUCT.md
GNUmakefile
LICENSE
README.md
README_cn.md
WORKSPACE
srpc-config.cmake.in
srpc.bzl
克隆/下载
docs-04-client.md 1.30 KB
一键复制 编辑 原始数据 按行查看 历史
liyingxin 提交于 3年前 . update docs link

English version

RPC Client

  • 每一个Client对应着一个确定的目标/一个确定的集群
  • 每一个Client对应着一个确定的网络通信协议
  • 每一个Client对应着一个确定的IDL

示例

下面我们通过一个具体例子来呈现

  • 沿用上面的例子,client相对简单,直接调用即可
  • 通过Example::XXXClient创建某种RPC的client实例,需要目标的ip+port或url
  • 利用client实例直接调用rpc函数Echo即可,这是一次异步请求,请求完成后会进入回调函数
  • 具体的RPC Context用法请看下一个段落
#include <stdio.h>
#include "example.srpc.h"
#include "workflow/WFFacilities.h"

using namespace srpc;

int main()
{
    Example::SRPCClient client("127.0.0.1", 1412);
    EchoRequest req;
    req.set_message("Hello!");
    req.set_name("SRPCClient");

    WFFacilities::WaitGroup wait_group(1);

    client.Echo(&req, [&wait_group](EchoResponse *response, RPCContext *ctx) {
        if (ctx->success())
            printf("%s\n", response->DebugString().c_str());
        else
            printf("status[%d] error[%d] errmsg:%s\n",
                    ctx->get_status_code(), ctx->get_error(), ctx->get_errmsg());
        wait_group.done();
    });

    wait_group.wait();
    return 0;
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/xiayuxia/srpc_1.git
git@gitee.com:xiayuxia/srpc_1.git
xiayuxia
srpc_1
srpc_1
master

搜索帮助