gate.go 954 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package gate
  2. import (
  3. cherryApp "f1-game/internal/cherry_app"
  4. cgops "f1-game/internal/component/gops"
  5. "f1-game/internal/component/rate"
  6. "f1-game/internal/component/redis"
  7. "f1-game/internal/data"
  8. "f1-game/internal/sessions"
  9. "f1-game/nodes/gate/user"
  10. "github.com/cherry-game/cherry"
  11. cfacade "github.com/cherry-game/cherry/facade"
  12. )
  13. // Run gate不直接连数据库,需要数据可以通center/game节点获取
  14. func Run(node cfacade.INode) {
  15. app := cherry.ConfigureNode(
  16. node,
  17. true,
  18. cherry.Cluster,
  19. )
  20. cherryApp.Init(app)
  21. app.Register(cgops.New())
  22. app.Register(data.NewConfigs(
  23. data.SDK,
  24. data.ProtoRoute,
  25. data.RateLimiter,
  26. data.Lua,
  27. ))
  28. app.Register(redis.NewClients(
  29. redis.GUID,
  30. redis.Center,
  31. ))
  32. app.Register(rate.New())
  33. app.AddActors(
  34. sessions.NewActor(false),
  35. )
  36. initApp(app)
  37. app.Startup()
  38. }
  39. func initApp(app *cherry.AppBuilder) {
  40. userParser := user.NewUserActorParser()
  41. app.SetNetParser(userParser)
  42. }