一、介绍
在 《go入门grpc》第七章: 创建grpc服务器 我们介绍了创建grpc服务器,然后我们使用的BloomRPC作为客户端去发起请求。
本周我们学习,如何在代码中,新建一个客户端,去调用grpc服务器。
创建grpc服务器的时候,我们使用了hello_grpc.pb.go里面的 server接口和注册方法。
在创建客户端的时候更简单,只要调用hello_grpc.pb.go里面的SayHello()方法就行了。
我们也简单分为两大步骤:
- 创建 grpc客户端链接
- 使用_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方法,主要有三步。
- 创建grpc连接会话
- 使用_grpc.pb.go 里面的NewSayClient来新建一个sayClient
- 调用_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)
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。