Beispiel #1
0
        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;
            }
        }
Beispiel #2
0
        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;
            }
        }
Beispiel #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();
        }