mirror of
https://github.com/FlourishingWorld/hk4e.git
synced 2026-02-13 23:52:29 +08:00
Merge remote-tracking branch 'origin/main'
This commit is contained in:
@@ -3,13 +3,17 @@
|
|||||||
hk4e game server
|
hk4e game server
|
||||||
|
|
||||||
## 开发快速上手
|
## 开发快速上手
|
||||||
|
|
||||||
* Go >= 1.19
|
* Go >= 1.19
|
||||||
|
|
||||||
1. 首次需要安装工具 `make dev_tool`
|
1. 首次需要安装工具 `make dev_tool`
|
||||||
1. 生成协议 `make gen`
|
1. 生成协议 `make gen`
|
||||||
|
|
||||||
## 快速运行
|
## 快速运行
|
||||||
|
|
||||||
* mongodb
|
* mongodb
|
||||||
* nats-server
|
* nats-server
|
||||||
|
|
||||||
1. 启动dispatch `cd dispatch/cmd && go run .`
|
1. 启动dispatch `cd dispatch/cmd && go run .`
|
||||||
1. 启动gate `cd gate/cmd && go run .`
|
1. 启动gate `cd gate/cmd && go run .`
|
||||||
1. 启动gs `cd gs/cmd && go run .`
|
1. 启动gs `cd gs/cmd && go run .`
|
||||||
|
|||||||
@@ -40,28 +40,16 @@ func NewController(dao *dao.Dao) (r *Controller) {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
r.regionListBase64 = base64.StdEncoding.EncodeToString(regionListModify)
|
r.regionListBase64 = base64.StdEncoding.EncodeToString(regionListModify)
|
||||||
r.runEngine()
|
go r.registerRouter()
|
||||||
return r
|
return r
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Controller) runEngine() {
|
func (c *Controller) registerRouter() {
|
||||||
if config.CONF.Logger.Level == "DEBUG" {
|
if config.CONF.Logger.Level == "DEBUG" {
|
||||||
gin.SetMode(gin.DebugMode)
|
gin.SetMode(gin.DebugMode)
|
||||||
} else {
|
} else {
|
||||||
gin.SetMode(gin.ReleaseMode)
|
gin.SetMode(gin.ReleaseMode)
|
||||||
}
|
}
|
||||||
go func() {
|
|
||||||
engine := c.registerRouter()
|
|
||||||
port := config.CONF.HttpPort
|
|
||||||
addr := ":" + strconv.FormatInt(int64(port), 10)
|
|
||||||
err := engine.Run(addr)
|
|
||||||
if err != nil {
|
|
||||||
logger.LOG.Error("gin run error: %v", err)
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *Controller) registerRouter() *gin.Engine {
|
|
||||||
engine := gin.Default()
|
engine := gin.Default()
|
||||||
{
|
{
|
||||||
// 404
|
// 404
|
||||||
@@ -140,5 +128,10 @@ func (c *Controller) registerRouter() *gin.Engine {
|
|||||||
engine.GET("/pictures/gt/a330cf996/slice/86f9db021.png", c.slicePng)
|
engine.GET("/pictures/gt/a330cf996/slice/86f9db021.png", c.slicePng)
|
||||||
engine.GET("/static/ant/sprite2x.1.2.6.png", c.sprite2xPng)
|
engine.GET("/static/ant/sprite2x.1.2.6.png", c.sprite2xPng)
|
||||||
}
|
}
|
||||||
return engine
|
port := config.CONF.HttpPort
|
||||||
|
addr := ":" + strconv.Itoa(port)
|
||||||
|
err := engine.Run(addr)
|
||||||
|
if err != nil {
|
||||||
|
logger.LOG.Error("gin run error: %v", err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
12
gm/cmd/application.toml
Normal file
12
gm/cmd/application.toml
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
http_port = 9001
|
||||||
|
|
||||||
|
[logger]
|
||||||
|
level = "DEBUG"
|
||||||
|
method = "CONSOLE"
|
||||||
|
track_line = true
|
||||||
|
|
||||||
|
[database]
|
||||||
|
url = "mongodb://mongo:27017"
|
||||||
|
|
||||||
|
[mq]
|
||||||
|
nats_url = "nats://nats1:4222,nats://nats2:4222,nats://nats3:4222"
|
||||||
37
gm/cmd/main.go
Normal file
37
gm/cmd/main.go
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"hk4e/common/config"
|
||||||
|
"hk4e/gm/controller"
|
||||||
|
"hk4e/logger"
|
||||||
|
"os"
|
||||||
|
"os/signal"
|
||||||
|
"syscall"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
filePath := "./application.toml"
|
||||||
|
config.InitConfig(filePath)
|
||||||
|
|
||||||
|
logger.InitLogger("gm")
|
||||||
|
logger.LOG.Info("gm start")
|
||||||
|
|
||||||
|
_ = controller.NewController()
|
||||||
|
|
||||||
|
c := make(chan os.Signal, 1)
|
||||||
|
signal.Notify(c, syscall.SIGHUP, syscall.SIGQUIT, syscall.SIGTERM, syscall.SIGINT)
|
||||||
|
for {
|
||||||
|
s := <-c
|
||||||
|
logger.LOG.Info("get a signal %s", s.String())
|
||||||
|
switch s {
|
||||||
|
case syscall.SIGQUIT, syscall.SIGTERM, syscall.SIGINT:
|
||||||
|
logger.LOG.Info("gm exit")
|
||||||
|
time.Sleep(time.Second)
|
||||||
|
return
|
||||||
|
case syscall.SIGHUP:
|
||||||
|
default:
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
51
gm/controller/controller.go
Normal file
51
gm/controller/controller.go
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
package controller
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/gin-gonic/gin"
|
||||||
|
"hk4e/common/config"
|
||||||
|
"hk4e/logger"
|
||||||
|
"net/http"
|
||||||
|
"strconv"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Controller struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewController() (r *Controller) {
|
||||||
|
r = new(Controller)
|
||||||
|
go r.registerRouter()
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *Controller) authorize() gin.HandlerFunc {
|
||||||
|
return func(context *gin.Context) {
|
||||||
|
if true {
|
||||||
|
// 验证通过
|
||||||
|
context.Next()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// 验证不通过
|
||||||
|
context.Abort()
|
||||||
|
context.JSON(http.StatusOK, gin.H{
|
||||||
|
"code": "10001",
|
||||||
|
"msg": "没有访问权限",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *Controller) registerRouter() {
|
||||||
|
if config.CONF.Logger.Level == "DEBUG" {
|
||||||
|
gin.SetMode(gin.DebugMode)
|
||||||
|
} else {
|
||||||
|
gin.SetMode(gin.ReleaseMode)
|
||||||
|
}
|
||||||
|
engine := gin.Default()
|
||||||
|
engine.Use(c.authorize())
|
||||||
|
engine.POST("/gm/cmd", c.gmCmd)
|
||||||
|
port := config.CONF.HttpPort
|
||||||
|
addr := ":" + strconv.Itoa(port)
|
||||||
|
err := engine.Run(addr)
|
||||||
|
if err != nil {
|
||||||
|
logger.LOG.Error("gin run error: %v", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
20
gm/controller/gm_controller.go
Normal file
20
gm/controller/gm_controller.go
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
package controller
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/gin-gonic/gin"
|
||||||
|
"hk4e/logger"
|
||||||
|
)
|
||||||
|
|
||||||
|
type GmCmdReq struct {
|
||||||
|
FuncName string `json:"func_name"`
|
||||||
|
Param []string `json:"param"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *Controller) gmCmd(context *gin.Context) {
|
||||||
|
gmCmdReq := new(GmCmdReq)
|
||||||
|
err := context.ShouldBindJSON(gmCmdReq)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
logger.LOG.Info("%v", gmCmdReq)
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user