server.go 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package server
  2. import (
  3. "bet24.com/servers/micros/common"
  4. "bet24.com/servers/micros/privateroom/game/client"
  5. "context"
  6. "fmt"
  7. )
  8. var _addr string
  9. func Run(gameName string, port int, consulPort int, sink IPrivateRoomSink) {
  10. _addr = fmt.Sprintf("privateroom_%s_%s_%d", gameName, common.GetLocalIp(), port)
  11. common.RunWithoutChangeTitle(_addr, newHandler(sink), fmt.Sprintf("localhost:%d", consulPort))
  12. }
  13. func GetAddr() string {
  14. return _addr
  15. }
  16. func newHandler(sink IPrivateRoomSink) *PrivateRoomServer {
  17. ret := new(PrivateRoomServer)
  18. ret._sink = sink
  19. return ret
  20. }
  21. type PrivateRoomServer struct {
  22. _sink IPrivateRoomSink
  23. }
  24. func (s *PrivateRoomServer) CreatePrivateRoom(ctx context.Context, req *client.Request_Create, reply *client.Reply) error {
  25. reply.RetCode = s._sink.CreatePrivateRoom(req.Creator, req.GameRule, req.Target, req.UserCount, req.PlayTimeout)
  26. return nil
  27. }
  28. func (s *PrivateRoomServer) OnRoomStatusChanged(ctx context.Context, req *client.Request_StatusChanged, reply *client.Reply) error {
  29. s._sink.OnRoomStatusChanged(req.RoomNo, req.OldStatus, req.NewStatus)
  30. return nil
  31. }
  32. func (s *PrivateRoomServer) OnRoomDismissed(ctx context.Context, req *client.Request_StatusChanged, reply *client.Reply) error {
  33. s._sink.OnRoomDismissed(req.RoomNo)
  34. return nil
  35. }
  36. func (s *PrivateRoomServer) ForceEnterUser(ctx context.Context, req *client.Request_ForceUserEnter, reply *client.Reply) error {
  37. s._sink.ForceEnterUser(req.UserId, req.RoomNo, req.ChairId)
  38. return nil
  39. }
  40. func (s *PrivateRoomServer) SetExtraParam(ctx context.Context, req *client.Request_ExtraParams, reply *client.Reply) error {
  41. reply.Data = s._sink.SetExtraParam(req.RoomNo, req.UserId, req.ParamId, req.Data)
  42. return nil
  43. }