# go_grpc **Repository Path**: tonghuaing/go_grpc ## Basic Information - **Project Name**: go_grpc - **Description**: grpc基础知识学习 - **Primary Language**: Go - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2022-05-07 - **Last Updated**: 2023-09-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # go_grpc #### 介绍 grpc基础知识学习,跟着老外学习grpc,包含grpc基础知识:protobuf、gateway、unary api、stream api(server 、client、bidrectional)、grpc interceptor、JWT auth、SSL/TLS、swagger。本次学习的视频地址:[https://www.bilibili.com/video/BV1Rg411T7yF?p=1](https://www.bilibili.com/video/BV1Rg411T7yF?p=1) 项目结构 ``` go_grpc/ ├── gRPC_Server │ ├── helper │ ├── img │ ├── keys │ ├── pbfiles │ ├── proto │ ├── sample │ ├── serializer │ ├── service │ ├── swagger │ ├── tmp │ ├── gen.bat │ ├── httpServer.go │ └── server.go ├── gRPC_Client │ ├── client │ ├── helper │ ├── keys │ ├── pbfiles │ ├── tmp │ └── client.go └── ``` **gRPC_Server** * helper: 存放客户端和服务端的SSL/TLS认证 * img: 图片存放位置 * keys: 存放ca、客户端和服务端证书 * pbfiles: 存放生成的go文件 * proto: 存放proto文件 * sample: 简单样例编写 * serializer: ptotobuf序列化和json序列化 * service: 编写服务端提供的服务 * swagger: 存放swagger.json文件 * tmp: 临时存放目录 * gen.bat: 存放编译生成go文件相关的命protoc令 * httpServer.go: 提供http服务,这是单独抽离出来的,方便运行 * server.go: 服务端主文件,提供http服务和grpc服务 **gRPC_Client** * client: 存放客户端相关文件 * helper: 存放客户端SSL/TLS认证 * keys: 存放客户端和ca证书 * pbfiles: 存放服务端生成的go文件 * tmp: 临时存放地址 * client.go: 客户端主文件 # 使用 先运行服务端```server.go```的gRPC服务: ```go go run server.go -tls=true -type=grpc ``` 再运行```httpServer.go```中的http服务: ```go go run httpServer.go -tls=true ``` 然后运行客户端服务即可: ```go go run client.go ```