main.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package main
  2. import (
  3. "context"
  4. "ipsomc/core/dao/mysql/mysqlapi"
  5. "ipsomc/core/dao/redis/redisapi"
  6. "ipsomc/core/router"
  7. "ipsomc/module/socket/socketcreate"
  8. "ipsomc/module/timer"
  9. "ipsomc/public"
  10. "ipsomc/util"
  11. "github.com/gin-gonic/gin"
  12. _ "github.com/jinzhu/gorm/dialects/mysql"
  13. )
  14. // socket模块
  15. var socketCreateApi socketcreate.SocketCreate
  16. // 系统工作模式,0:开发模式,1:生产模式
  17. var sysWorkMode uint32 = 1
  18. func main() {
  19. ctx := context.Background()
  20. //设置系统工作模式
  21. public.PublicSysWorkModeSet(sysWorkMode)
  22. //初始化配置文件
  23. util.ViperConfigInit("config", "config")
  24. //创建定时器
  25. go timer.CreateTimer(ctx)
  26. //创建socket监听
  27. //go socketCreateApi.CreateUdpSocket()
  28. go socketCreateApi.CreateTcpSocket()
  29. //打开redis数据库
  30. redisapi.OpenRds(ctx, "redisDefault")
  31. defer redisapi.CloseRds()
  32. //打开MySql数据库
  33. mysqlapi.OpenSqlDb(sysWorkMode)
  34. defer mysqlapi.CloseSqlDb()
  35. //注册并启动路由
  36. runMode := gin.ReleaseMode //发布模式,
  37. if sysWorkMode == 0 {
  38. runMode = gin.DebugMode //调试模式
  39. }
  40. r := router.SetRouter(runMode, sysWorkMode)
  41. r.Run(":8080") //监听
  42. }