Skip to content

Latest commit

 

History

History
97 lines (73 loc) · 2.62 KB

quick_start.zh_CN.md

File metadata and controls

97 lines (73 loc) · 2.62 KB

English | 中文

快速开始

准备工作

获取示例代码

示例代码是 tRPC-Go 仓库的一部分。 克隆仓库并进入 helloworld 目录。

$ git clone --depth 1 [email protected]:trpc-group/trpc-go.git
$ cd trpc-go/examples/helloworld

执行示例

  1. 编译并执行服务端代码:
    $ cd server && go run main.go
  2. 打开另一个终端,编译并执行客户端代码:
    $ cd client && go run main.go
    你会在客户端日志中发现 Hello world! 字样。

恭喜你!你已经成功地在 tRPC-Go 框架中执行了客户端-服务端应用示例。

更新 protobuf

可以看到,protobuf ./pb/helloworld.proto 定义了服务 Greeter

service Greeter {
  rpc Hello (HelloRequest) returns (HelloReply) {}
}

message HelloRequest {
  string msg = 1;
}

message HelloReply {
  string msg = 1;
}

它只有一个方法 Hello。它的参数是 HelloRequest,返回一个 HelloReply

现在,我们加入一个新的方法 HelloAgain,使用相同的参数和返回值。

service Greeter {
  rpc Hello (HelloRequest) returns (HelloReply) {}
  rpc HelloAgain (HelloRequest) returns (HelloReply) {}
}


message HelloRequest {
  string msg = 1;
}

message HelloReply {
  string msg = 1;
}

通过在 ./pb 目录中执行 $ make 方法来重新生成 tRPC 桩代码。 在「准备工作」一节,我们已经安装了 Makefile 所需要的命令行工具 trpc

更新并执行服务端和客户端

在服务端 server/main.go,加入以下代码来实现 HelloAgain

func (g Greeter) HelloAgain(ctx context.Context, req *pb.HelloRequest) (*pb.HelloReply, error) {
    log.Infof("got HelloAgain request: %s", req.Msg)
    return &pb.HelloReply{Msg: "Hello " + req.Msg + " again!"}, nil
}

在客户端 client/main.go,加入以下代码来调用 HelloAgain

    rsp, err = c.HelloAgain(context.Background(), &pb.HelloRequest{Msg: "world"})
    if err != nil {
        log.Error(err)
    }
    log.Info(rsp.Msg)

按「执行示例」一节重新再执行一遍示例,你可能看到 Hello world again! 出现在客户端日志中。

下一步