使用Golang IDE 以及 go mod搭建简单gRPC服务

使用go mod方式搭建项目

这样创建的项目可以不在GOPATH下运行
输入代理:

当然,也可以用别的代理
在这里插入图片描述
先创建server.go在项目根目录,放main函数
在go.mod文件中加一行

下载gRPC依赖

官方安装命令:

是安装不了的,会报超时错误:

因为这个包已经迁移到github上了,正确的做法是使用git clone去下载:
有git的同学 可以直接

git clone https://github.com/grpc/grpc-go.git $GOPATH/src/google.golang.org/grpc

git clone https://github.com/golang/net.git $GOPATH/src/golang.org/x/net

git clone https://github.com/golang/text.git $GOPATH/src/golang.org/x/text

git clone https://github.com/google/go-genproto.git $GOPATH/src/google.golang.org/genproto

下载protoc:
https://github.com/golang/protobuf
下载后将bin文件夹配置到环境变量中。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200516172057581.png
怎么配置环境变量就不说了,不知道的同学肯定是跳着学了。
输入protoc --version 出现版本号说明安装成功。

创建gRPC服务端

创建一个文件夹pbfiles用于存放proto文件
创建一个proto文件:Hi.proto
在这里插入图片描述

创建services文件夹在项目根目录,文件夹名就是proto文件中定义的包名。

打开终端,可以在Golang IDE 左下角选择Terminal也可以在项目文件夹中cmd进入。
在这里插入图片描述
先cd pbfiles 进入pbfiles文件夹
输入 protoc --go_out=plugins=grpc:. Hi.proto可以看到在services包中生成了一个Hi.pb.go 文件
在这里插入图片描述
新建一个HiService.go文件,其中声明一个结构体HiService

结构体实现Hi.pb.go中的接口

传入一个上下文context 和Hi.pb.go中定义的请求体 ,可以从请求体中取得客户端请求时放入的内容
返回的也是Hi.pb.go中定义的返回体,返回体中的返回值就是客户端请求时返回的内容。
在这里插入图片描述
在server.go的main方法中写上

在这里插入图片描述
启动服务端。

创建客户端

也使用go mod方式创建项目
将服务端的services包复制过来。
创建一个main.go

在这里插入图片描述
接下来就可以启动客户端,得到服务端的返回值
在这里插入图片描述
在这里插入图片描述