Name Last Update
cmd Loading commit data...
common Loading commit data...
conf Loading commit data...
doc Loading commit data...
docker Loading commit data...
models Loading commit data...
pb Loading commit data...
tools 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...
DesignerConfigs @ e062c5009b6
luban_examples @ 090af6e8d6d
protos @ b0645398975

README.md

Pro2dServer

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

技术点

一个服务器需要的组件:

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

技术点:

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

目录结构

.
├── 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二进制下载地址: https://github.com/protocolbuffers/protobuf/releases/tag/v21.0-rc2

win下载3.8版本。其他平台随意,没遇到问题。

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

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

protoc-go & etcd

$ go get go.etcd.io/etcd/client/v3
$ go get google.golang.org/protobuf/cmd/protoc-gen-go
$ 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 game
$ make account

测试

$ make test