Beispiel #1
0
        /// <summary>
        /// Принимаем все сообщения от группы
        /// </summary>
        public void GetMsgFromFroup()
        {
            CORE.AutoExit _autoExit = CORE.AutoExit.GetInstance();         //синглтончик
            _controlForm.SetLabelStateProgramm("Сервер включен");
            new Thread(() => _readerAllEvents.readMsgFromGroup()).Start(); //в этом потоке нонстоп читаем данные с сервера

            new Thread(() =>                                               //в этом потоке ждём, получаем и формируем блок сообщений, отправляем сортировщику
            {
                while (true)
                {
                    Thread.Sleep(7000);

                    if (userMessage != "" && userID != 0)
                    {
                        _userMessage = userMessage; _userID = userID;
                        _controlForm.AddMsgRichTextBox(_userID.ToString(), _userMessage);
                        userMessage = "";
                        userID      = 0;
                        SortMsgFromGroup(_userMessage);
                        //  _sendMsgFromGroup.SendMessage(_userMessage, _userID); // !!! тут сортировщик вставить
                        _userMessage = ""; _userID = 0;
                    }
                    if (FORM.MainForm.stopRun == true)
                    {
                        Debug.WriteLine("Stop Sender");
                        break;
                    }
                }
            }).Start();
        }
Beispiel #2
0
        public void readMsgFromGroup()
        {
            var s = _GetAuth.api.Groups.GetLongPollServer(75514519);     //обновлять в экзепшн

            SrvLongPoll = s.Server;
            _ts         = s.Ts;

            while (true)     // Бесконечный цикл, получение обновлений
            {
                try
                {
                    s           = _GetAuth.api.Groups.GetLongPollServer(75514519); //обновлять в экзепшн
                    SrvLongPoll = s.Server;
                    var poll = _GetAuth.api.Groups.GetBotsLongPollHistory(
                        new BotsLongPollHistoryParams {
                        Server = SrvLongPoll, Ts = _ts, Key = s.Key, Wait = 10
                    });

                    _ts = poll.Ts;                     // <-- нужно обновлять Ts
                    if (FORM.MainForm.stopRun == true) //стоп если есть флаг
                    {
                        Debug.WriteLine("Stop Reader");
                        _controlForm.SetLabelStateProgramm("Сервер выключен");
                        break;
                    }

                    if (poll.Updates != null)
                    {
                        foreach (var a in poll.Updates)
                        {
                            if (a.Type == GroupUpdateType.MessageNew)
                            {
                                CORE.Receiver.userMessage += "%start%&begin[" + a.Message.PeerId + "]" + a.Message.Text + "&end%final%" + Environment.NewLine;
                                CORE.Receiver.userID       = a.Message.PeerId;

                                //  Debug.WriteLine($"[{CORE.Receiver.userID}] {CORE.Receiver.userMessage}");
                            }
                            else //тут если нет новый сообщений
                            {
                            }
                        }
                    }
                }
                catch (Exception ex) {
                    //s = _GetAuth.api.Groups.GetLongPollServer(75514519); //обновлять в экзепшн
                    //SrvLongPoll = s.Server;
                    //_ts = s.Ts;
                }
            }
        }
Beispiel #3
0
 private void button2_Click(object sender, EventArgs e)
 {
     stopRun = true;
     CORE.AutoExit.TimerStop();
     _controlForm.SetLabelStateProgramm("Завершаем потоки..");
 }