private void Client_OnReveieveData(ReceieveMessage message) { // messageList.InvokeOnUiThreadIfRequired(() => messageList.AppendText(message.DataStr)); switch (message.Action) { case (int)CommandType.OnlineList: //在线用户 var userList2 = JsonHelper.DeserializeObj <List <OnlineListResult> >(message.DataStr); onlineInfo.OnOnlineChange(userList2); break; case (int)CommandType.PrivateChat: //接收到学生私聊信息 var PrivateChatMessage = JsonHelper.DeserializeObj <PrivateChatRequest>(message.DataStr); this.InvokeOnUiThreadIfRequired(() => { ReceievePrivateMessage(PrivateChatMessage); }); break; case (int)CommandType.TeamChat: //收到群聊信息 var TeamChatRequest = JsonHelper.DeserializeObj <TeamChatRequest>(message.DataStr); this.InvokeOnUiThreadIfRequired(() => { ReceieveTeamMessage(TeamChatRequest); }); break; case (int)CommandType.GroupChat: //收到群聊信息 var groupChatRequest = JsonHelper.DeserializeObj <GroupChatRequest>(message.DataStr); this.InvokeOnUiThreadIfRequired(() => { ReceieveGroupMessage(groupChatRequest); }); break; case (int)CommandType.OneUserLogIn: //某个学生登录 var newUser = JsonHelper.DeserializeObj <List <OnlineListResult> >(message.DataStr); onlineInfo.OnNewUserLoginIn(newUser); // OnlineInfo_AddOnLine(onlineInfo, e2); break; case (int)CommandType.StudentCall: //课堂点名 var callInfo = JsonHelper.DeserializeObj <StuCallRequest>(message.DataStr); UpdateOnLineStatus(callInfo); break; case (int)CommandType.UserLoginOut: //用户登出 var loginoutInfo = JsonHelper.DeserializeObj <UserLogoutResponse>(message.DataStr); onlineInfo.OnUserLoginOut(loginoutInfo); break; case (int)CommandType.ScreenInteract: //收到视频流 ScreenInteract_Response resp = JsonHelper.DeserializeObj <ScreenInteract_Response>(message.DataStr); this.InvokeOnUiThreadIfRequired(() => { PlayRtspVideo(resp.url); }); break; case (int)CommandType.StopScreenInteract: //收到停止接收视频流 this.InvokeOnUiThreadIfRequired(() => { StopPlay(); }); break; default: break; } }
// string GlobalVariable.MasterTitle; public UserMainForm() { InitializeComponent(); CreateFilePath(); // GlobalVariable.MasterTitle = "教师端"; if (GlobalVariable.IsHuiShenXiTong) { // GlobalVariable.MasterTitle = "指挥室"; mSignIn.Visible = false; mHandUp.Visible = false; mPrivateSMS.Visible = false; mFileShare.Visible = false; } chatForm = new ChatForm(); Text = GlobalVariable.LoginUserInfo.DisplayName; tuopan.Text = Text; #region 处理收到的消息 //学生端收到消息 GlobalVariable.client.OnStudentReceiveMessage = (message) => { switch (message.Action) { case (int)CommandType.UserLoginRes: break; case (int)CommandType.TeacherLoginIn: //主机端登录 TeacherLoginInResponse teachRes = JsonHelper.DeserializeObj <TeacherLoginInResponse>(message.DataStr); ShowNotify(GlobalVariable.MasterTitle + "登录"); GlobalVariable.TeacherIP = teachRes.teachIP; DoAction(() => { // CreateUDPHole(); }); break; case (int)CommandType.TeacherLoginOut: //主机端登出 ShowNotify(GlobalVariable.MasterTitle + "登出"); if (theadScreen != null && theadScreen.ThreadState == ThreadState.Background) { isRunScreen = false; Thread.Sleep(200); theadScreen.Abort(); } break; case (int)CommandType.ScreenInteract: //播放视频流 ShowNotify("收到视频流,开始播放"); ScreenInteract_Response resp = JsonHelper.DeserializeObj <ScreenInteract_Response>(message.DataStr); DoAction(() => { ShowRtspVideo(resp.url); }); break; case (int)CommandType.StopScreenInteract: //停止视频流 ShowNotify("视频流已结束,停止播放"); DoAction(() => { StopPlay(); }); break; case (int)CommandType.LockScreen: //锁屏 ShowNotify("当前屏幕被锁定"); LockScreen(false); break; case (int)CommandType.StopLockScreen: //终止锁屏 ShowNotify("屏幕锁定已解除"); StopLockScreen(); break; case (int)CommandType.Quiet: //屏幕肃静 ShowNotify("当前屏幕被锁定并黑屏"); LockScreen(true); break; case (int)CommandType.StopQuiet: //终止屏幕肃静 ShowNotify("屏幕锁定及黑屏已解除"); StopLockScreen(); break; case (int)CommandType.PrivateChat: //收到私聊信息 case (int)CommandType.TeamChat: //收到组聊信息 case (int)CommandType.GroupChat: //收到群聊信息 DoReceiveChatMessage(message); break; case (int)CommandType.BeginCall: //开始点名 ShowNotify("开始点名"); DoAction(() => { OpenCallForm(); }); break; case (int)CommandType.EndCall: //结束点名 ShowNotify("结束点名"); DoAction(() => { CloseCallForm(); }); break; case (int)CommandType.CreateTeam: //收到创建群组信息 var teamInfo = JsonHelper.DeserializeObj <TeacherTeam>(message.DataStr); GlobalVariable.LoadTeamList(teamInfo); DoAction(() => { if (GlobalVariable.CheckChatFormIsOpened()) { GlobalVariable.ShowNotifyMessage("群组信息已经更改"); chatForm.ReflashTeamChat(); } // chatForm.BringToFront(); // chatForm.Show(); }); break; case (int)CommandType.CallStudentShow: //收到请求客户端演示 ShowNotify("收到推送请求,开始广播当前屏幕"); DoAction(() => { currPushCreamType = CommandType.CallStudentShow; PushVideoCream(); }); break; case (int)CommandType.CallStudentShowForMySelf: //收到请求客户端演示 ShowNotify("收到推送请求,开始推送当前屏幕到" + GlobalVariable.MasterTitle); DoAction(() => { currPushCreamType = CommandType.CallStudentShowForMySelf; PushVideoCream(); }); break; case (int)CommandType.CallStudentShowVideoToTeacher: //收到请求客户端演示视频 ShowNotify("收到推送请求,开始推送摄像头视频到" + GlobalVariable.MasterTitle); DoAction(() => { currPushCreamType = CommandType.CallStudentShowVideoToTeacher; PushVideoCream(); }); break; case (int)CommandType.StopStudentShow: //停止演示 ShowNotify("停止演示"); DoAction(() => { GlobalVariable.client.StopScreenInteract(); GlobalVariable.client.Send_StopScreenInteract(); isPushScream = false; }); break; case (int)CommandType.ForbidPrivateChat: //收到禁止私聊 ShowNotify(GlobalVariable.MasterTitle + "已禁止私聊"); GlobalVariable.LoginUserInfo.AllowPrivateChat = false; ChangeChatAllowOrForbit(ChatType.PrivateChat, false); break; case (int)CommandType.ForbidTeamChat: //收到禁止群聊 ShowNotify(GlobalVariable.MasterTitle + "已禁止群聊"); GlobalVariable.LoginUserInfo.AllowTeamChat = false; ChangeChatAllowOrForbit(ChatType.TeamChat, false); break; case (int)CommandType.AllowPrivateChat: //收到允许私聊 ShowNotify(GlobalVariable.MasterTitle + "已允许私聊"); GlobalVariable.LoginUserInfo.AllowPrivateChat = true; ChangeChatAllowOrForbit(ChatType.PrivateChat, true); break; case (int)CommandType.AllowTeamChat: //收到允许群聊 ShowNotify(GlobalVariable.MasterTitle + "已允许群聊"); GlobalVariable.LoginUserInfo.AllowTeamChat = true; ChangeChatAllowOrForbit(ChatType.TeamChat, true); break; case (int)CommandType.DeleteUserInGroup: //收到删除群组成员 var deleteInfo = JsonHelper.DeserializeObj <DeleteTeamMemberRequest>(message.DataStr); DoAction(() => { DeleteTeamMember(deleteInfo); }); break; default: break; } }; #endregion GlobalVariable.client.DueLostMessage(); GlobalVariable.client.SendXinTiao(); // GlobalVariable.client.OnReveieveData += Client_OnReveieveData; // GlobalVariable.client.Send_StudentInMainForm(); }
public UserMainForm() { InitializeComponent(); Text = GlobalVariable.LoginUserInfo.DisplayName; tuopan.Text = Text; #region 处理收到的消息 //教师端登入 GlobalVariable.client.OnTeacherLoginIn = (message) => { TeacherLoginInResponse teachRes = JsonHelper.DeserializeObj <TeacherLoginInResponse>(message.DataStr); GlobalVariable.TeacherIP = teachRes.teachIP; DoAction(() => { SendScreen(); }); }; //教师端登出 GlobalVariable.client.OnTeacherLoginOut = (message) => { if (theadScreen != null && theadScreen.ThreadState == ThreadState.Background) { isRunScreen = false; Thread.Sleep(200); theadScreen.Abort(); } }; //收到视频流 GlobalVariable.client.OnScreenInteract = (message) => { ScreenInteract_Response resp = JsonHelper.DeserializeObj <ScreenInteract_Response>(message.DataStr); DoAction(() => { ShowViewRtsp2(resp.url); }); }; //收到视频流停止 GlobalVariable.client.OnStopScreenInteract = (message) => { DoAction(() => { StopPlay(); }); }; //锁屏 GlobalVariable.client.OnLockScreen = (message) => { LockScreen(false); }; //终止锁屏 GlobalVariable.client.OnStopLockScreen = (message) => { StopLockScreen(); }; //屏幕肃静 GlobalVariable.client.OnQuiet = (message) => { LockScreen(true); }; //终止屏幕肃静 GlobalVariable.client.OnStopQuiet = (message) => { StopLockScreen(); }; //收到私聊信息 GlobalVariable.client.OnPrivateChat = (message) => { var chatResponse = JsonHelper.DeserializeObj <PrivateChatRequest>(message.DataStr); DoAction(() => { var chatMessage = chatResponse.ToChatMessage(); OpenChatForm(chatMessage); }); }; //收到群聊信息 GlobalVariable.client.OnTeamChat = (message) => { var teamChatResponse = JsonHelper.DeserializeObj <TeamChatRequest>(message.DataStr); DoAction(() => { var request = teamChatResponse.ToChatMessage(); OpenChatForm(request); }); }; //收到群聊信息 GlobalVariable.client.OnGroupChat = (message) => { var groupChatResponse = JsonHelper.DeserializeObj <GroupChatRequest>(message.DataStr); DoAction(() => { var request = groupChatResponse.ToChatMessage(); OpenChatForm(request); }); }; //点名 GlobalVariable.client.OnBeginCall = (message) => { DoAction(() => { OpenCallForm(); }); }; //结束点名 GlobalVariable.client.OnEndCall = (message) => { DoAction(() => { CloseCallForm(); }); }; //收到创建群组信息 GlobalVariable.client.OnCreateTeam = (message) => { var teamInfo = JsonHelper.DeserializeObj <TeamChatCreateOrUpdateRequest>(message.DataStr); GlobalVariable.RefleshTeamList(teamInfo); DoAction(() => { chatForm.BringToFront(); chatForm.Show(); chatForm.ReflashTeamChat(); }); }; //收到请求学生演示 GlobalVariable.client.OnCallStudentShow = (message) => { DoAction(() => { GlobalVariable.client.CreateScreenInteract(); GlobalVariable.client.Send_ScreenInteract(); }); }; //停止演示 GlobalVariable.client.OnStopStudentShow = (message) => { DoAction(() => { GlobalVariable.client.StopScreenInteract(); GlobalVariable.client.Send_StopScreenInteract(); }); }; //收到禁止私聊 GlobalVariable.client.OnForbidPrivateChat = (message) => { GlobalVariable.LoginUserInfo.AllowPrivateChat = false; ChangeChatAllowOrForbit(ChatType.PrivateChat, false); }; //收到禁止群聊 GlobalVariable.client.OnForbidTeamChat = (message) => { GlobalVariable.LoginUserInfo.AllowTeamChat = false; ChangeChatAllowOrForbit(ChatType.TeamChat, false); }; //收到允许私聊 GlobalVariable.client.OnAllowPrivateChat = (message) => { GlobalVariable.LoginUserInfo.AllowPrivateChat = true; ChangeChatAllowOrForbit(ChatType.PrivateChat, true); }; //收到允许群聊 GlobalVariable.client.OnAllowTeamChat = (message) => { GlobalVariable.LoginUserInfo.AllowTeamChat = true; ChangeChatAllowOrForbit(ChatType.TeamChat, true); }; #endregion GlobalVariable.client.DueLostMessage(); // GlobalVariable.client.OnReveieveData += Client_OnReveieveData; // GlobalVariable.client.Send_StudentInMainForm(); }
public MainForm() { InitializeComponent(); //flowLayoutPanel1.MouseWheel += FlowLayoutPanel1_MouseWheel; //for (int i = 0; i < 30; i++) //{ // ScreenCaptureInfo sc = new ScreenCaptureInfo(); // sc.UserName = "******" + i; // sc.DisplayName = "disname" + i; // AddStudentScreenToPanel(sc); //} CreateFilePath(); this.onlineListGrid1.Columns.Cast <DataGridViewColumn>().ToList().ForEach(f => f.SortMode = DataGridViewColumnSortMode.NotSortable); _clientTitle = GlobalVariable.ClientTitle; this.Text = GlobalVariable.SystemTitle; menuStudentShow.Text = GlobalVariable.ClientTitle + "演示"; myGroupBox7.Text = "在线" + GlobalVariable.ClientTitle + "列表"; myGroupBox8.Text = GlobalVariable.ClientTitle + "屏幕"; if (GlobalVariable.IsHuiShenXiTong) { menuClassNamed.Hide(); menuExportSign.Hide(); menuFileShare.Hide(); menuRomoteControl.Hide(); tableLayoutPanel1.ColumnCount = 1; tableLayoutPanel1.RowCount = 1; myGroupBox1.Text = "群聊"; menuGroupChat.Text = "群组聊天"; onlineListGrid1.Columns["col_isval"].Visible = false; // tableLayoutPanel3.ColumnStyles[4].Width = 0f; } // GlobalVariable.client.OnClentIsConnecting += Client_OnClentIsConnecting; InitOnlineInfo(); GlobalVariable.LoadTeamFromXML(); #region 接收消息事件 GlobalVariable.client.OnTeacherReceiveMessage = (message) => { switch ((CommandType)message.Action) { case CommandType.OnlineList: var userList2 = JsonHelper.DeserializeObj <List <OnlineUserResponse> >(message.DataStr); onlineInfo.OnOnlineChange(userList2); break; case CommandType.StudentShowToTeacher: case CommandType.ScreenInteract: ScreenInteract_Response resp = JsonHelper.DeserializeObj <ScreenInteract_Response>(message.DataStr); this.InvokeOnUiThreadIfRequired(() => { PlayRtspVideo(resp.url); }); break; case CommandType.StopScreenInteract: this.InvokeOnUiThreadIfRequired(() => { StopPlay(); }); break; case CommandType.PrivateChat: case CommandType.TeamChat: case CommandType.GroupChat: DoReceiveChatMessage(message); break; case CommandType.OneUserLogIn: var newUser = JsonHelper.DeserializeObj <List <OnlineUserResponse> >(message.DataStr); onlineInfo.OnNewUserLoginIn(newUser); break; case CommandType.UserLoginOut: var loginoutInfo = JsonHelper.DeserializeObj <UserLogoutResponse>(message.DataStr); onlineInfo.OnUserLoginOut(loginoutInfo); DeleteScreen(loginoutInfo); break; case CommandType.StudentCall: var callInfo = JsonHelper.DeserializeObj <StuCallRequest>(message.DataStr); UpdateOnLineStatus(callInfo); break; case CommandType.CreateTeam: //收到创建群组信息 var teamInfo = JsonHelper.DeserializeObj <TeacherTeam>(message.DataStr); GlobalVariable.LoadTeamList(teamInfo); this.InvokeOnUiThreadIfRequired(() => { if (GlobalVariable.CheckChatFormIsOpened()) { GlobalVariable.ShowNotifyMessage("群组信息已经更改"); chatForm.ReflashTeamChat(); } }); break; default: break; } }; #endregion GlobalVariable.client.DueLostMessage(); GlobalVariable.client.Send_OnlineList(); GlobalVariable.client.SendXinTiao(); LogUser(); }