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"); } }
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"); }