servicecontext.go 1.1 KB

123456789101112131415161718192021222324252627282930
  1. package svc
  2. import (
  3. "slowwildws/internal/config"
  4. "slowwildws/internal/constants"
  5. "slowwildws/internal/middleware"
  6. "slowwildws/internal/server"
  7. "time"
  8. slowWildQueue "git.banshen.xyz/huangguangrong/slow_wild_queue"
  9. "github.com/zeromicro/go-zero/rest"
  10. )
  11. type ServiceContext struct {
  12. Config config.Config
  13. WsServer *server.WebsocketServer
  14. UserMiddleware rest.Middleware
  15. MsgChatTransferClient slowWildQueue.MsgChatTransferClient
  16. MsgReadTransferClient slowWildQueue.MsgReadTransferClient
  17. }
  18. func NewServiceContext(c config.Config) *ServiceContext {
  19. return &ServiceContext{
  20. Config: c,
  21. WsServer: server.NewWebsockerServer(c, server.WithServerMaxConnectionIdle(time.Duration(c.MaxConnectionIdle)*time.Second), server.WithServerAck(constants.NoAck)),
  22. UserMiddleware: middleware.NewJwtMiddleware(c.Auth.AccessSecret).Handle,
  23. MsgChatTransferClient: slowWildQueue.NewMsgChatTransferClient(c.MsgChatTransfer.Addrs, c.MsgChatTransfer.Topic),
  24. MsgReadTransferClient: slowWildQueue.NewMsgReadTransferClient(c.MsgReadTransfer.Addrs, c.MsgReadTransfer.Topic),
  25. }
  26. }