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; } }
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 PrivateChatResponse = JsonHelper.DeserializeObj <PrivateChatRequest>(message.DataStr); this.InvokeOnUiThreadIfRequired(() => { AppendToPrivateForm(PrivateChatResponse); }); 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; default: break; } }
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(); }