1

一、介绍

《go入门grpc》第七章: 创建grpc服务器 我们介绍了创建grpc服务器,然后我们使用的BloomRPC作为客户端去发起请求。

本周我们学习,如何在代码中,新建一个客户端,去调用grpc服务器。
创建grpc服务器的时候,我们使用了hello_grpc.pb.go里面的 server接口和注册方法。
在创建客户端的时候更简单,只要调用hello_grpc.pb.go里面的SayHello()方法就行了。
我们也简单分为两大步骤:

  1. 创建 grpc客户端链接
  2. 使用_grpc.pb.go 里面的NewSayClient来新建一个sayClient,然后调用SayHello()方法

二、准备工作目录

我们在项目根目录,同级server,创建一个client目录。
然后在client目录里,创建一个 client_test.go文件。如下:

➜  grpc-demo1 git:(master) tree
.
├── Makefile
├── api
│   ├── hello.pb.go
│   ├── hello.proto
│   ├── hello_grpc.pb.go
│   ├── user.pb.go
│   └── user.proto
├── client
│   └── client_test.go
├── go.mod
├── go.sum
└── server
    ├── hello.go
    └── main.go

3 directories, 11 files

如要参考整个项目的代码,可以访问以下地址
https://github.com/hisheng/grpc-demo1

三、创建grpc客户端

我们把创建gprc客户端,到调用grpc方法,主要有三步。

  1. 创建grpc连接会话
  2. 使用_grpc.pb.go 里面的NewSayClient来新建一个sayClient
  3. 调用_grpc.pb.go 里面sayClient的SayHello方法。

完整的 client_test.go代码如下:

package client

import (
    "context"
    "github/hisheng/grpc-demo1/api"
    "google.golang.org/grpc"
    "google.golang.org/grpc/credentials/insecure"
    "log"
    "testing"
)

func TestSayHello(t *testing.T) {
    // 1、初始化grpc连接conn
    var opts []grpc.DialOption
    opts = append(opts, grpc.WithTransportCredentials(insecure.NewCredentials()))

    serverAddr := "localhost:8083"
    conn, err := grpc.Dial(serverAddr, opts...)
    if err != nil {
        log.Fatal(err)
    }
    defer conn.Close()

    // 2、初始化sayClient
    client := api.NewSayClient(conn)
    // 3、调用sayClient里面的方法
    resp, err := client.SayHello(context.Background(), &api.HelloRequest{Name: "海生"})
    log.Fatal(resp, err)
}

海生
104 声望33 粉丝

与黑夜里,追求那一抹萤火。