Exemple #1
0
        public override void ExecuteCommand(ChatSession session, StringRequestInfo requestInfo)
        {
            if (requestInfo.Parameters != null && requestInfo.Parameters.Length == 2)
            {
                var sesssionList = session.AppServer.GetAllSessions();
                if (sesssionList != null)
                {
                    ChatSession oldSession = sesssionList.FirstOrDefault(s => requestInfo.Parameters[0].Equals(s.Id));
                    if (oldSession != null)
                    {
                        oldSession.Send("login other computer,you kick off!");
                        oldSession.Close();
                    }
                }

                //不去数据库查询了
                session.Id        = requestInfo.Parameters[0];
                session.Password  = requestInfo.Parameters[1];
                session.IsLogin   = true;
                session.LoginTime = DateTime.Now;

                session.Send("Login Success");
                {
                    //登陆获取离线消息
                    var UnReadData = ChatDataManager.Read(session.Id);
                    if (UnReadData != null)
                    {
                        foreach (var c in UnReadData)
                        {
                            session.Send($"{c.FromId}给你发消息:{c.Message} {c.Id}");
                            c.State = 1;
                        }
                    }

                    //ChatDataManager.SendLogin(session.Id, c =>
                    // {
                    //     session.Send($"{c.FromId}给你发消息:{c.Message} {c.Id}");
                    // });
                }
            }
            else//能进入这个方法,说明已经是Check
            {
                session.Send("Wrong Parameter");
            }
        }