Exemple #1
0
 private void DeleteTeamMember(DeleteTeamMemberRequest deleteInfo)
 {
     GlobalVariable.DelTeamMember(deleteInfo);
     if (GlobalVariable.CheckChatFormIsOpened())
     {
         GlobalVariable.ShowNotifyMessage("群组信息已经更改");
         chatForm.ReflashTeamChat();
     }
 }
Exemple #2
0
        //   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();
        }
Exemple #3
0
        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();
        }