示例#1
0
        private IResult MuteUserInform(IReceiveInfo receiveInfo, UserInfo userInfo)
        {
            string  roomID = receiveInfo.Message["房间名"];
            string  userID = receiveInfo.Message["学号"];
            bool    isMute = bool.Parse(receiveInfo.Message["是否静音"]);
            IResult result;

            if (!runningData.ChatRoom_id.ContainsKey(roomID))//房间存在判定
            {
                result = new Result(baseResult.Faild, "该答疑室未被创建");
            }
            else if (!runningData.ChatRoom_id[roomID].memberList.Contains(runningData.Clients_remoteEndPoint[runningData.Clients_id[userID]]))
            {
                result = new Result(baseResult.Faild, "用户不在答疑室");
            }
            else
            {
                if (isMute)
                {
                    Terminal.ClientPrint(receiveInfo.RemoteEndPoint, InfoType.信息, "禁止" + userID + "发言 答疑室=>房间号:" + roomID);
                }
                else
                {
                    Terminal.ClientPrint(receiveInfo.RemoteEndPoint, InfoType.信息, "允许" + userID + "发言 答疑室=>房间号:" + roomID);
                }
                ServerSocket.Send(runningData.Clients_id[userID], MessageTranslate.EncapsulationInfo(MessageContent.静音自己, MessageType.通知, roomID, isMute.ToString()));
                result = new Result(baseResult.Successful);
            }
            return(result);
        }
        private IResult SpeakInform(IReceiveInfo receiveInfo, UserInfo userInfo)
        {
            string roomID = receiveInfo.Message["房间名"];

            Terminal.ClientPrint(receiveInfo.RemoteEndPoint, InfoType.请求, "发言请求=>" + receiveInfo.Message["学号"] + "房间号:" + roomID);
            IResult result;

            if (!runningData.ChatRoom_id.ContainsKey(roomID))//房间存在判定
            {
                result = new Result(baseResult.Faild, "该答疑室未被创建");
            }
            else if (!runningData.ChatRoom_id[roomID].memberList.Contains(userInfo))
            {
                result = new Result(baseResult.Faild, "用户不在答疑室");
            }
            else
            {
                User_Server builder = (User_Server)runningData.ChatRoom_id[roomID].Builder;
                if (builder.RoomIDs.Contains(roomID))
                {
                    ServerSocket.Send(runningData.Clients_id[builder.UserId], MessageTranslate.EncapsulationInfo(MessageContent.发言请求, MessageType.通知, roomID, userInfo.UserId));
                    result = new Result(baseResult.Successful);
                }
                else
                {
                    result = new Result(baseResult.Faild, "答疑室已无老师");
                }
            }
            if (result.BaseResult == baseResult.Faild)
            {
                Terminal.ServerPrint(InfoType.响应, "<" + receiveInfo.RemoteEndPoint + ">:" + "失败 描述:" + result.Info);
            }
            return(result);
        }
示例#3
0
        private IResult ExitRoomInform(IReceiveInfo receiveInfo, UserInfo userInfo)
        {
            string roomID = receiveInfo.Message["房间名"];

            Terminal.ClientPrint(receiveInfo.RemoteEndPoint, InfoType.信息, userInfo.UserId + "主动离开答疑室=>房间号:" + roomID);
            IResult result;

            if (!runningData.ChatRoom_id.ContainsKey(roomID))//房间存在判定
            {
                result = new Result(baseResult.Faild, "该答疑室未被创建");
            }
            else if (!runningData.ChatRoom_id[roomID].memberList.Contains(userInfo))
            {
                result = new Result(baseResult.Faild, "用户不在答疑室");
            }
            else
            {
                runningData.ChatRoom_id[roomID].memberList.Remove(userInfo);
                ((User_Server)userInfo).RoomIDs.Remove(roomID);
                if (runningData.ChatRoom_id.ContainsKey(roomID))
                {
                    foreach (UserInfo user in runningData.ChatRoom_id[roomID].memberList)
                    {
                        ServerSocket.Send(runningData.Clients_id[user.UserId], MessageTranslate.EncapsulationInfo(MessageContent.某人退出答疑室, MessageType.通知, roomID, userInfo.UserId));
                    }
                }
                result = new Result(baseResult.Successful);
            }
            return(result);
        }
        private IResult ExitRoomInform(IReceiveInfo receiveInfo, UserInfo userInfo)
        {
            string roomID = receiveInfo.Message["房间名"];

            Terminal.ClientPrint(receiveInfo.RemoteEndPoint, InfoType.信息, userInfo.UserId + "主动离开答疑室=>房间号:" + roomID);
            IResult result;

            if (!runningData.ChatRoom_id.ContainsKey(roomID))//房间存在判定
            {
                result = new Result(baseResult.Faild, "该答疑室未被创建");
            }
            else if (!runningData.ChatRoom_id[roomID].memberList.Contains(userInfo))
            {
                result = new Result(baseResult.Faild, "用户不在答疑室");
            }
            else
            {
                runningData.ChatRoom_id[roomID].memberList.Remove(userInfo);
                ((User_Server)userInfo).RoomIDs.Remove(roomID);
                result = new Result(baseResult.Successful);
            }
            if (result.BaseResult == baseResult.Faild)
            {
                Terminal.ServerPrint(InfoType.响应, "<" + receiveInfo.RemoteEndPoint + ">:" + "失败 描述:" + result.Info);
            }
            return(result);
        }
示例#5
0
        private IResult LoginRequest(IReceiveInfo receiveInfo, UserInfo userInfo)
        {
            Terminal.ClientPrint(receiveInfo.RemoteEndPoint, InfoType.请求, "登录客户端=>学号:" + receiveInfo.Message["学号"]);
            //之前的ID;
            string password   = receiveInfo.Message["密码"];
            string lastUserId = userInfo.UserId == null ? "" : userInfo.UserId;

            userInfo.UserId = receiveInfo.Message["学号"];
            IResult result;

            //判断是否已登录
            if (runningData.Clients_id.ContainsKey(userInfo.UserId))
            {
                result = new Result(baseResult.Faild, "该用户已登录");
            }
            else
            {
                Terminal.ServerPrint(InfoType.信息, "访问数据库中......");
                //验证结果
                if (ServerCallDatabase.CheckUserInfo(userInfo, password).BaseResult == baseResult.Successful)
                {
                    //是否权限用户
                    bool IsPrerogative = ServerCallDatabase.IsPrerogative(userInfo);
                    userInfo.IsPrerogative = IsPrerogative;
                    //已登录了 移除登陆
                    if (runningData.Clients_id.ContainsKey(lastUserId))
                    {
                        runningData.Clients_id.Remove(lastUserId);
                    }
                    runningData.Clients_id[userInfo.UserId] = receiveInfo.RemoteEndPoint;
                    result = new Result(baseResult.Successful, IsPrerogative.ToString());
                }
                else
                {
                    result = new Result(baseResult.Faild, "错误的账号或密码");
                }
            }

            if (result.BaseResult == baseResult.Successful)
            {
                Terminal.ServerPrint(InfoType.响应, "<" + receiveInfo.RemoteEndPoint + ">:" + "成功登录 权限:" + result.Info);
            }
            else
            {
                Terminal.ServerPrint(InfoType.响应, "<" + receiveInfo.RemoteEndPoint + ">:" + "登录失败 原因:" + result.Info);
            }
            ServerSocket.Send(receiveInfo.RemoteEndPoint, MessageTranslate.EncapsulationInfo(MessageContent.登录, MessageType.响应, result.BaseResult.ToString(), result.Info));
            return(result);
        }
示例#6
0
        private IResult JoinRoomRequest(IReceiveInfo receiveInfo, UserInfo userInfo)
        {
            string roomID   = receiveInfo.Message["房间名"];
            string password = receiveInfo.Message["密码"];

            Terminal.ClientPrint(receiveInfo.RemoteEndPoint, InfoType.请求, "加入答疑室=>房间号:" + roomID);
            IResult result;

            if (!runningData.ChatRoom_id.ContainsKey(roomID))//房间存在判定
            {
                result = new Result(baseResult.Faild, "该答疑室未被创建");
            }
            else if (runningData.ChatRoom_id[roomID].memberList.Contains(userInfo))
            {
                result = new Result(baseResult.Faild, "用户已在答疑室");
            }
            else if (runningData.ChatRoom_id[roomID].Password != password)
            {
                result = new Result(baseResult.Faild, "密码错误");
            }
            else//成功加入
            {
                runningData.ChatRoom_id[roomID].memberList.Add(userInfo);
                ((User_Server)userInfo).RoomIDs.Add(roomID);
                result = new Result(baseResult.Successful, "房间号" + roomID);
            }
            if (result.BaseResult == baseResult.Faild)
            {
                Terminal.ServerPrint(InfoType.响应, "<" + receiveInfo.RemoteEndPoint + ">:" + "加入失败 描述:" + result.Info);
                ServerSocket.Send(receiveInfo.RemoteEndPoint, MessageTranslate.EncapsulationInfo(MessageContent.加入答疑室, MessageType.响应, result.BaseResult.ToString(), result.Info, "error"));
            }
            else
            {
                Terminal.ServerPrint(InfoType.响应, "<" + receiveInfo.RemoteEndPoint + ">:" + "加入成功 描述:" + result.Info);
                ServerSocket.Send(receiveInfo.RemoteEndPoint, MessageTranslate.EncapsulationInfo(MessageContent.加入答疑室, MessageType.响应, result.BaseResult.ToString(), result.Info, runningData.ChatRoom_id[roomID].Builder.UserId));
            }
            return(result);
        }
示例#7
0
        //[AOPMethod("创建答疑室请求", PreProceed, PostProceed)]
        private IResult CreateRoomRequest(IReceiveInfo receiveInfo, UserInfo userInfo)
        {
            string roomID   = receiveInfo.Message["房间名"];
            string password = receiveInfo.Message["密码"];

            Terminal.ClientPrint(receiveInfo.RemoteEndPoint, InfoType.请求, "创建答疑室=>房间号:" + roomID);
            IResult result;

            if (!runningData.Clients_remoteEndPoint[receiveInfo.RemoteEndPoint].IsPrerogative)//权限判定
            {
                result = new Result(baseResult.Faild, "用户没有创建权限");
            }
            else if (runningData.ChatRoom_id.ContainsKey(roomID))//房间存在判定
            {
                result = new Result(baseResult.Faild, "该答疑室已存在");
            }
            else//成功创建
            {
                ChatRoom chatroom = new ChatRoom(password);
                chatroom.RoomEmpty += RoomEmpty;
                chatroom.Builder    = userInfo;
                chatroom.GroupName  = roomID;
                chatroom.memberList.Add(userInfo);
                runningData.ChatRoom_id[roomID] = chatroom;
                ((User_Server)userInfo).RoomIDs.Add(roomID);
                result = new Result(baseResult.Successful, "房间号" + roomID);
            }
            if (result.BaseResult == baseResult.Faild)
            {
                Terminal.ServerPrint(InfoType.响应, "<" + receiveInfo.RemoteEndPoint + ">:" + "创建失败 描述:" + result.Info);
            }
            else
            {
                Terminal.ServerPrint(InfoType.响应, "<" + receiveInfo.RemoteEndPoint + ">:" + "创建成功 描述:" + result.Info);
            }
            ServerSocket.Send(receiveInfo.RemoteEndPoint, MessageTranslate.EncapsulationInfo(MessageContent.创建答疑室, MessageType.响应, result.BaseResult.ToString(), result.Info));
            return(result);
        }
示例#8
0
 private IResult RegisterRequest(IReceiveInfo receiveInfo, UserInfo userInfo, string password)
 {
     throw new NotImplementedException();
 }
示例#9
0
 private IResult GetUserListInRoomRequest(IReceiveInfo receiveInfo, UserInfo userInfo, string remoteEndPoint, string roomId)
 {
     throw new NotImplementedException();
 }