serviceContext.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. package svc
  2. import (
  3. "github.com/zeromicro/go-queue/kq"
  4. "github.com/zeromicro/go-queue/rabbitmq"
  5. "github.com/zeromicro/go-zero/rest"
  6. "github.com/zeromicro/go-zero/zrpc"
  7. "microGame/app/usercenter/cmd/api/internal/config"
  8. "microGame/app/usercenter/cmd/api/internal/game"
  9. "microGame/app/usercenter/cmd/api/internal/middleware"
  10. "microGame/app/usercenter/cmd/rpc/client/roomservice"
  11. "microGame/app/usercenter/cmd/rpc/client/userservice"
  12. )
  13. type ServiceContext struct {
  14. Config config.Config
  15. KqPusherClient *kq.Pusher
  16. RabbitSender rabbitmq.Sender
  17. UserAgentMiddleware rest.Middleware
  18. UserRpc userservice.UserService
  19. RoomRpc roomservice.RoomService
  20. Hub *game.Hub
  21. }
  22. func NewServiceContext(c config.Config) *ServiceContext {
  23. hub := game.NewHub()
  24. go hub.Run()
  25. return &ServiceContext{
  26. Config: c,
  27. Hub: hub,
  28. KqPusherClient: kq.NewPusher(c.KqPusherConf.Brokers, c.KqPusherConf.Topic),
  29. RabbitSender: rabbitmq.MustNewSender(c.RabbitSenderConf),
  30. UserAgentMiddleware: middleware.NewUserAgentMiddleware().Handle,
  31. UserRpc: userservice.NewUserService(zrpc.MustNewClient(c.UserCenterRpcConf)),
  32. RoomRpc: roomservice.NewRoomService(zrpc.MustNewClient(c.UserCenterRpcConf)),
  33. }
  34. }