using Google.Protobuf; using Google.Protobuf.WellKnownTypes; using ServerCore; using ServerBase; using ServerCommon; using ServerCommon.BusinessLogDomain; using MetaAssets; namespace GameServer.PacketHandler; [PacketHandler("", typeof(ServerMessage.Types.GS2GS_REQ_RESERVATION_CANCEL_TO_SERVER), typeof(ReqReservationCancelToServerMQPacketHandler), typeof(RabbitMQ4Game))] public class ReqReservationCancelToServerMQPacketHandler : PacketRecvHandler { public override async Task onProcessPacket(ISession session, IMessage recvMessage) { var msg = recvMessage as ServerMessage; NullReferenceCheckHelper.throwIfNull(msg, () => $"msg is null !!!"); var message = msg.ReqReservationCancelToServer; NullReferenceCheckHelper.throwIfNull(message, () => $"message is null !!!"); // 1. cancel 처리 await GameServerApp.getServerLogic().getReservationManager().cancelProcess(message); // 2. ack 전송 var send = new ServerMessage(); send.AckReservationCancelToServer = new ServerMessage.Types.GS2GS_ACK_RESERVATION_CANCEL_TO_SERVER(); send.AckReservationCancelToServer.RequestUserGuid = message.RequestUserGuid; var rabbit_mq = GameServerApp.getServerLogic().getRabbitMqConnector() as RabbitMqConnector; NullReferenceCheckHelper.throwIfNull(rabbit_mq, () => $"rabbit_mq is null !!!"); rabbit_mq.SendMessage(message.RequestServerName, send); return new(); } }