Name Last Update
cmd Loading commit data...
common Loading commit data...
conf Loading commit data...
doc Loading commit data...
models Loading commit data...
pb Loading commit data...
plugin Loading commit data...
tools Loading commit data...
utils Loading commit data...
.gitignore Loading commit data...
.gitmodules Loading commit data...
Makefile Loading commit data...
README.md Loading commit data...
go.mod Loading commit data...
go.sum Loading commit data...
protos @ 7257f0e1d7c

README.md

Pro2dServer

这是pro2d项目的服务器, 使用golang搭建

技术点

一个服务器需要的组件:

  • 数据库
  • 日志
  • 集群
  • 分布式

技术点

  • golang 热更

组件名字

  • mongo
  • etcd
  • proto + models 查询
  • redis

目录结构

.
├── bin
├── cmd                 //入口文件
├── conf                //配置文件
├── csvdata             //csv的golang struct
├── doc                 //文档
├── docker              //docker部署
├── protos
│   ├── doc             //协议文档
│   └── pb              //生成的pb.go文件
├── src                 //逻辑目录
│   ├── actions         //逻辑处理
│   ├── common
│   ├── components      //组件
│   │   ├── db          
│   │   ├── etcd
│   │   ├── jwt
│   │   ├── logger
│   │   └── net         //网络组件(http + tcp)
│   ├── models          //数据模型
│   ├── plugin          //逻辑热更的插件
│   └── utils           //通用函数
├── test                //测试
├── tools               //工具(proto自动生成协议号,csv自动生成struct)

环境安装

protoc-go-inject-tag: 目的是往protos文件中打入自定义标签

$ go get github.com/favadi/protoc-go-inject-tag

etcd

$ go get go.etcd.io/etcd/client/v3
$ go install google.golang.org/protobuf/cmd/protoc-gen-go
$ go get google.golang.org/grpc/cmd/protoc-gen-go-grpc
$ go install google.golang.org/grpc/cmd/protoc-gen-go-grpc

文档

证书制作 包组成结构

Usage

编译 & 运行 游戏服 & 登录服务

$ make account
$ make game

测试

$ make test