public DispatchFactory(Interfaces.ISiqiServer server) { // mLoginDispather = new Dispatch.Dispatcher(); mTalkDispather = new Dispatch.Dispatcher(); mGlobalDispather = new Dispatch.Dispatcher(); mRoomDispatcher = new Dispatch.RoomDispatcher(server); mDeskDispatcher = new Dispatch.DeskDispatcher(); }
public static void Initialize(Interfaces.ISiqiServer server) { for (int i = 0; i < 20; i++) { string id = (i + 1).ToString(); Room room = new Room(id, "游戏房间" + id); for (int k = 0; k < 50; k++) { string deskid = (k + 1).ToString(); room.Add(new Desk(deskid, deskid, 4)); } server.Add(room); } }
protected abstract void OnExecute(T message, EC.ISession session, Interfaces.IUserAgent agent, Interfaces.ISiqiServer server);
protected override void OnExecute(Protocol.Login message, EC.ISession session, Interfaces.IUserAgent agent, Interfaces.ISiqiServer server) { Protocol.LoginResponse response = new Protocol.LoginResponse(); response.MsgID = message.MsgID; response.Success = false; try { Interfaces.Data.Model.User user = server.LoginHandler.Login(message.EMail, message.Password); if (user != null) { agent = server.GetUser(message.EMail); if (agent == null) { agent = new UserAgent(user, session); server.AddUser(agent); } else { agent.Session = session; } session[SESSION_KEY.USER] = agent; response.Tokey = message.EMail; response.Success = true; session.Channel.Status = Beetle.Express.ChannelStatus.security; } else { response.Message = "用户名和密码不正确!"; } } catch (Exception e_) { response.Message = e_.Message; } server.Send(response, session); }
protected override void OnExecute(Protocol.SelectRoom message, EC.ISession session, Interfaces.IUserAgent agent, Interfaces.ISiqiServer server) { Protocol.SelectRoomResponse response = new Protocol.SelectRoomResponse(); response.MsgID = message.MsgID; response.Success = false; IRoom room = server.GetRoom(message.Room); if (room != null) { room.In(agent); response.Success = true; response.Room = room.ID; } else { response.Message = "room not found!"; } server.Send(response, session); }
protected override void OnExecute(Protocol.ListRoom message, EC.ISession session, Interfaces.IUserAgent agent, Interfaces.ISiqiServer server) { Protocol.ListRoomResponse response = server.ListRoom(); response.MsgID = message.MsgID; server.Send(response, session); }
protected override void OnExecute(Protocol.GetRoom message, EC.ISession session, Interfaces.IUserAgent agent, Interfaces.ISiqiServer server) { Protocol.RoomInfoDetail result = new Protocol.RoomInfoDetail(); result.Success = true; try { Interfaces.IRoom room = server.GetRoom(message.Room); if (room != null) { result = room.GetInfoDetail(); result.Success = true; } else { result.Success = false; result.Message = "房间不存在!"; } } catch (Exception e_) { result.Success = false; result.Message = e_.Message; } server.Send(result, agent); }
protected override void OnExecute(Protocol.SelectDesk message, EC.ISession session, Interfaces.IUserAgent agent, Interfaces.ISiqiServer server) { Interfaces.IRoom room = server.GetRoom(message.Room); if (room != null) { room.AddMessage(message, agent); } else { Protocol.SelectDeskResponse response = new Protocol.SelectDeskResponse(); response.Success = false; response.Message = "所在房间不存在!"; server.Send(response, session); } }
public RoomDispatcher(Interfaces.ISiqiServer server) { Server = server; System.Threading.ThreadPool.QueueUserWorkItem(OnRun); }