lobbies.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package main
  2. import (
  3. "git.wanbits.io/joe/franklin/comp"
  4. pb "git.wanbits.io/joe/franklin/protos"
  5. "git.wanbits.io/joe/kettle/log"
  6. "git.wanbits.io/joe/nnet"
  7. "github.com/gogo/protobuf/proto"
  8. "go.uber.org/zap"
  9. "time"
  10. )
  11. func RandALobbies(userId uint64) (nnet.ISession, error) {
  12. return g_taj.RandSession()
  13. }
  14. func ForwardLobby(pkt *CSPacket) {
  15. ses, err := g_taj.RandSession()
  16. if err != nil {
  17. log.Error("no lobby", zap.Error(err))
  18. return
  19. }
  20. err = ses.AWrite(pkt, time.Second)
  21. if err != nil {
  22. log.Error("forward to lobby", zap.Error(err))
  23. }
  24. }
  25. func SendToLobby(userId uint64, inner proto.Message) {
  26. ses, err := g_taj.RandSession()
  27. if err != nil {
  28. log.Error("cant find lobby server", zap.Error(err))
  29. return
  30. }
  31. // 不做 guid 合法性检查,而直接发出消息
  32. bst, err := proto.Marshal(inner)
  33. if nil != err {
  34. log.Error("proto.Marshal", zap.Error(err))
  35. return
  36. }
  37. name := comp.GetMsgName(inner)
  38. id := comp.GetMsgId(name)
  39. req := &pb.Request{
  40. MsgId: id,
  41. UserId: userId,
  42. MsgName: name,
  43. Req: bst,
  44. }
  45. err = ses.AWrite(&CSPacket{req}, time.Second)
  46. if nil != err {
  47. log.Error("proto.AWrite", zap.Error(err))
  48. }
  49. }