| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- package main
- import (
- "io/ioutil"
- _ "net/http"
- "os"
- "rocommon/service"
- _ "rocommon/socket"
- _ "rocommon/socket/http"
- _ "rocommon/socket/tcp"
- "rocommon/util"
- "roweb/serverlist/model"
- "runtime"
- "strconv"
- "syscall"
- "github.com/gin-gonic/gin"
- )
- // /https://github.com/gin-gonic/gin
- func main() {
- //记录gate pid用来做关闭操作
- sysType := runtime.GOOS
- if sysType != "windows" {
- if pid := syscall.Getpid(); pid != 1 {
- fileName := "serverlist.pid" + string(strconv.Itoa(pid))
- ioutil.WriteFile(fileName, []byte(strconv.Itoa(pid)), 0777)
- defer os.Remove(fileName)
- }
- }
- service.Init("roweb")
- //todo...
- // 1,做动态热加载
- // 2,在获取文件内容时判断md5码然后进行加载,不加锁
- // 3, 是否需要放在mysql中
- // 4,是否需要支持通过后台web页面操作的方式来添加服务器组
- // 目前先做简单版本,放到配置文件中,修改后自动热加载,后期可以直接放到数据库中
- serverListFile := *(service.FlagServerList) //./serverlist.yaml
- model.InitConfig(serverListFile)
- sConfig := service.GetServiceConfig()
- //sdk http
- model.SetHttpNodeParam(&model.ServiceParam{
- ServiceType: "httpConnector",
- ServiceName: "game",
- //LisAddr: "serverlist.wtgame.cn:8088",
- //LisAddr: sConfig.Node.ServerList,
- })
- httpLogHandleFunc := func(c *gin.Context) {
- // 请求方式
- reqMethod := c.Request.Method
- // 请求路由
- reqUri := c.Request.RequestURI
- // 状态码
- statusCode := c.Writer.Status()
- // 请求IP
- clientIP := c.ClientIP()
- util.DebugF("requst=| statusCode=%3d | clientIP=%s | reqMethod=%s | reqUri=%s |",
- statusCode,
- clientIP,
- reqMethod,
- reqUri)
- c.Header("Access-Control-Allow-Origin", "*") // 可将将 * 替换为指定的域名
- c.Header("Access-Control-Allow-Methods", "GET, POST, OPTIONS")
- c.Header("Access-Control-Allow-Headers", "Accept, X-Access-Token, X-Application-Name, X-Request-Sent-Time")
- c.Header("Access-Control-Allow-Credentials", "true")
- }
- //对外开放端口
- go func() {
- router := gin.Default()
- router.Use(httpLogHandleFunc)
- r1 := router.Group("/serverlist")
- //获取服务器列表
- r1.HEAD("", model.GetHeadInfo)
- r1.GET("", model.GetServerListNew)
- //r1.GET("", model.GetServerList)
- //sdk 登录校验
- rSdkCheck := router.Group("/sdkcheck")
- //rSdkCheck.POST("", model.SDKCheck)
- rSdkCheck.GET("", model.SDKCheck)
- rSdkCheck.GET("/webtoken", model.UniSdkWebToken)
- //服务器维护操作
- r1.GET("/maintain", model.ServerMaintain)
- //玩家服务器角色信息注册
- r1.POST("/add", model.AddOpenIDServer)
- //修改服务器信息(gmt负责修改)
- r1.GET("/server", model.SetServerInfo)
- // //测试用公告
- // router.GET("/notice")
- // //测试用chanel
- // //测试用vipService
- router.Run(sConfig.Node.Addr)
- }()
- //对内开放端口
- go func() {
- router := gin.Default()
- router.Use(httpLogHandleFunc)
- r1 := router.Group("/serverlist")
- //服务器维护操作
- r1.GET("/maintain", model.ServerMaintain)
- //玩家服务器角色信息注册
- r1.POST("/add", model.AddOpenIDServer)
- //修改服务器信息(gmt负责修改)
- r1.GET("/server", model.SetServerInfo)
- router.Run(sConfig.Node.HttpAddr)
- }()
- service.WaitExitSignal()
- }
|