Example #1
0
        public override void ExecuteCommand(MailSession session, StringRequestInfo requestInfo)
        {
            string userIP   = requestInfo.Body.Split(',')[0];
            string userName = requestInfo.Body.Split(',')[1];

            CheckMailUser(userIP, userName);

            mailServerManager.AddOnlineUser(userIP);
            List <MailUser> mailUserList = mailServerManager.GetMailUsers();

            if (mailUserList == null || mailUserList.Count <= 0)
            {
                return;
            }
            string contentResult = JsonConvert.SerializeObject(mailUserList);

            //while (session.AppServer.GetAllSessions() == null || session.AppServer.GetAllSessions().Count() <= 0)
            //{
            //    Thread.Sleep(100);
            //}
            //向新登录的用户发送所有用户列表
            session.TrySend(MailServerCommand.MailUsersResponse.ToString() + " " + contentResult + "\r\n");
            //向其他用户发送更新通知
            MailUser mailUser = mailServerManager.GetMailUsersByIP(userIP);

            contentResult = JsonConvert.SerializeObject(mailUser);
            foreach (var item in session.AppServer.GetSessions(_ => _.SessionID != session.SessionID))
            {
                item.TrySend(MailServerCommand.UpdateMailUsers.ToString() + " " + contentResult + "\r\n");
            }
        }
Example #2
0
        public override void ExecuteCommand(MailSession session, StringRequestInfo requestInfo)
        {
            string            alias             = requestInfo.Body;
            string            ip                = session.RemoteEndPoint.Address.ToString();
            MailServerManager mailServerManager = new MailServerManager();

            mailServerManager.AddOnlineUser(ip, alias);
            session.TrySend(MailServerCommand.OnlineUsers.ToString() + " " + JsonConvert.SerializeObject(MailServerManager.OnlineUserDic) + "\r\n");
        }