//Accept里调用;根据messageContent执行相应业务逻辑 private void Receive(string remoteEndPoint, string info) { Dictionary <string, string> message; MessageContent messageContent; MessageType messageType; message = MessageTranslate.AnalyseInfo(info, out messageContent, out messageType); IReceiveInfo receiveInfo = new ReceiveInfo(message, remoteEndPoint); switch (messageContent) { case MessageContent.错误: Terminal.ClientPrint(remoteEndPoint, InfoType.发送, info); break; case MessageContent.登录: if (messageType == MessageType.请求) { LoginRequest(receiveInfo, runningData.Clients_remoteEndPoint[remoteEndPoint]); } break; case MessageContent.创建答疑室: if (messageType == MessageType.请求) { CreateRoomRequest(receiveInfo, runningData.Clients_remoteEndPoint[remoteEndPoint]); } break; case MessageContent.加入答疑室: if (messageType == MessageType.请求) { JoinRoomRequest(receiveInfo, runningData.Clients_remoteEndPoint[remoteEndPoint]); } break; case MessageContent.退出答疑室: if (messageType == MessageType.通知) { ExitRoomInform(receiveInfo, runningData.Clients_remoteEndPoint[remoteEndPoint]); } break; case MessageContent.静音某人: if (messageType == MessageType.通知) { MuteUserInform(receiveInfo, runningData.Clients_remoteEndPoint[remoteEndPoint]); } break; case MessageContent.发言请求: if (messageType == MessageType.通知) { SpeakInform(receiveInfo, runningData.Clients_remoteEndPoint[remoteEndPoint]); } break; } }
private void Receive(string info) { //分析信息 Dictionary <string, string> receiveMessage = new Dictionary <string, string>(); MessageContent messageContent; MessageType messageType; receiveMessage = MessageTranslate.AnalyseInfo(info, out messageContent, out messageType); switch (messageType) { case MessageType.错误: break; case MessageType.响应: respondMessage = receiveMessage; if (waitingRespond) { waitingRespond = false; //得到响应 停止等待 } else { throw new Exception("未请求的响应到来"); } break; case MessageType.通知: //未封装的 if (messageContent == MessageContent.静音自己) { someoneMute(receiveMessage["房间名"], UserInfo.UserId, bool.Parse(receiveMessage["是否静音"])); } else if (messageContent == MessageContent.静音某人) { someoneMute(receiveMessage["房间名"], receiveMessage["学号"], bool.Parse(receiveMessage["是否静音"])); } else if (messageContent == MessageContent.发言请求) { SomeoneSpeakInform?.Invoke(receiveMessage["学号"]); } break; } }
private void Receive(string info) { //分析信息 Dictionary <string, string> receiveMessage = new Dictionary <string, string>(); MessageContent messageContent; MessageType messageType; receiveMessage = MessageTranslate.AnalyseInfo(info, out messageContent, out messageType); switch (messageType) { case MessageType.错误: break; case MessageType.响应: respondMessage = receiveMessage; if (waitingRespond) { waitingRespond = false; //得到响应 停止等待 } else { throw new Exception("未请求的响应到来"); } break; case MessageType.通知: //未封装的 if (messageContent == MessageContent.静音自己) { callOMCS.Mute(bool.Parse(respondMessage["是否静音"])); } else if (messageContent == MessageContent.某人退出答疑室) { // } break; } }