示例#1
0
 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();
 }
示例#2
0
 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);
     }
 }
示例#3
0
 protected abstract void OnExecute(T message, EC.ISession session, Interfaces.IUserAgent agent, Interfaces.ISiqiServer server);
示例#4
0
 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);
 }
示例#5
0
        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);
        }
示例#6
0
 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);
 }
示例#7
0
 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);
 }
示例#8
0
 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);
     }
 }
示例#9
0
 public RoomDispatcher(Interfaces.ISiqiServer server)
 {
     Server = server;
     System.Threading.ThreadPool.QueueUserWorkItem(OnRun);
 }