Форум: "Прочее";
Текущий архив: 2018.01.21;
Скачать: [xml.tar.bz2];
ВнизПротестировать из программы качество соединения RDP Найти похожие ветки
← →
ВладОшин © (2016-07-18 13:24) [0]По RDP юзер цепляется к компьютеру. Периодически могут возникать проблемы с соединением. В таких случаях требуется сделать что-то.
Нашел WTSQuerySessionInformation
https://msdn.microsoft.com/en-us/library/aa383838(v=vs.85).aspx
из WTS_INFO_CLASS выцепаю Компьютер или IP c которого сидит юзер, физически.
Далее пинг от программы(моей, на удаленке) к Компьютер или IP c которого сидит юзер, физически..
И вот тут засада - некоторые пингуются, а некоторые - нет
При этом ClientAddr и ClientName определяется правильно - логирую, смотрю - совпадает
Пробую пинг через cmd - тоже самое, не пингуется. (превышен интервал ожидания)
Тут еще подумал - в принципе, юзер может вообще отключить ответ на пинг.
Вопрос
Как можно (еще) проверить что качество соединения RDP стало "плохим"?
← →
ВладОшин © (2016-07-18 13:27) [1]пока думаю считать дельту
DWORD IncomingBytes;
DWORD OutgoingBytes;
из
WTSINFOEX_LEVEL1 structure
которую можно той же WTSQuerySessionInformation получить
но что-то не нравится такой способ )
← →
Cobalt © (2016-07-18 14:32) [2]А с целью?
Неужто юзер не сможет лучше понять качество подключения?
← →
iop © (2016-07-18 14:45) [3]это тот случай когда оценка плохости канала ухудшает состояние этого канала.
← →
ВладОшин © (2016-07-18 14:46) [4]Цель - контроль
Есть операции, при которых юзеру запрещено оставлять текущую операцию. например, диалог с клиентом в чате. У юзера-девочки может зазвонить телефон, он на минуту оставляет клиента, занимаясь бой-френдом. Клиент пишет-пишет, а ответа нет. Клиент жалуется.
Юзер сообщает, что было подвисание коннекта. Сейчас этот момент никак не контролируется.
Или если юзер совсем отвалился, требуется клиента перекинуть на первого свободного оператора
← →
Rouse_ © (2016-07-18 15:22) [5]
> Cobalt © (18.07.16 14:32) [2]
> А с целью?
> Неужто юзер не сможет лучше понять качество подключения?
>
Володь - ты иногда такие ответы даешь, хоть стой - хоть падай.
Ты 24 кадра в секунду на глаз от 25 отличить сможешь?
← →
Kerk © (2016-07-18 15:49) [6]Надзиратель надежнее был бы :)
← →
ВладОшин © (2016-07-18 16:47) [7]ну..люди работают разные и по-разному, в т.ч. из дома, в т.ч. на пару часов в день подключаются поработать разные студенты.
← →
Eraser © (2016-07-18 17:20) [8]
> ВладОшин © (18.07.16 13:24)
> пинг
пинг, в качестве единственной меры контроля использовать ни в коем случае нельзя. начиная с 7, по умолчанию, стандартный сетевой экран полностью блокирует все сходящие ICMP. другими словами, чистая система пинговаться не будет вообще.
нужно, как минимум, пробовать установить TCP соединение, на какой-либо точно открытый порт.
← →
Kilkennycat © (2016-07-18 20:18) [9]
> например, диалог с клиентом в чате.
а если в этом примере просто посылать неотображаемые короткие тексты"пинг" с ответом "понг"? В момент, когда другие сообщения не посылаются. Пересылка двух сообщений, связанных по событию прием-передача, гарантирует, что чат работает. И используется тот же механизм, что удобно
← →
DayGaykin © (2016-07-18 23:30) [10]
> Rouse_ © (18.07.16 15:22) [5]
>
> > Cobalt © (18.07.16 14:32) [2]
> > А с целью?
> > Неужто юзер не сможет лучше понять качество подключения?
>
> >
>
> Володь - ты иногда такие ответы даешь, хоть стой - хоть
> падай.
> Ты 24 кадра в секунду на глаз от 25 отличить сможешь?
Я помню работая в одной конторе мне тестер написал, что интерфейс начал медленнее работать на 0,1 секунду. При масштабе 1-3 секунды.
Пришлось написать программу, которая отмеряла интервал 1 или 1,1 секунды, а тестер должен был определить :))
← →
ВладОшин © (2016-07-18 23:52) [11]
> пинг, в качестве единственной меры контроля использовать
> ни в коем случае нельзя
закинул на несколько машин, на 4х из 5 не пингуется
А почитав, похоже, вообще нельзя. Ни в качестве какой.
> Kilkennycat © (18.07.16 20:18) [9]
Костя, ты, кажись, не понял )
Есть машины А[i], рабочие, хорошие, двойное резервное по эл.энергии, тройное по провайдеру, кондей, админ дежурный - все стоят в Нерезиновске.
И есть Б[i] - разные люди по всей РФ, цепляются к А[i] и работают, якобы там.
Какие Б[i] - не понятно, любые могут быть. Ставить на них что-то, ну, в общем случае, нельзя.
А[i] работают с БД, с клиентом, часто на ПО клиента или в браузере. (Может, видел где-то - заходишь на сайт, там всплывает окошко консультанта, можно поговорить. Вот в т.ч. и такая деятельность шарагой поддерживается - операторы проходят обучение и консультируют посетителя)
т.е. проблем на компах А[i] при работе нет в 99.99%% случаях.
Проблема с коннектом с Б[i] из Урюпинска до А[i] в Москве.
← →
Германн © (2016-07-19 01:24) [12]
> ВладОшин © (18.07.16 13:24)
>
> По RDP юзер цепляется к компьютеру. Периодически могут возникать
> проблемы с соединением. В таких случаях требуется сделать
> что-то.
>
Кому требуется?
Б[i] в Урюпинске или А[i] в Москве?
Или лично тебе?
← →
Германн © (2016-07-19 01:46) [13]Ну в смысле, что если я живу в Урюпинске и у меня хреновый "интернет", то должен ли я (имею ли я право) требовать с Москвы что-нибудь?
← →
ВладОшин © (2016-07-19 08:09) [14]скатываемся в бла-бла-бла
ну ладно )
> Кому требуется?
Требуется начальству, делать мне.
> должен ли я (имею ли я право) требовать с Москвы что-нибудь?
Имеешь. Но руководство решит, профинансировать ли тебе что-то другое, или распрощаться с тобой, в случае невозможности повысить тебе "интернет"/железо.
В разумных пределах, разумеется )
(как человек из такого же Урюпинска(хоть и не оператор), постоянно что-то выбиваю - то память, то доп.винты, то еще что. Интернет сам купил максимальный в нашем городе - 45 mbt - уже и больше есть, но хватает вполне и такого)
← →
Kilkennycat © (2016-07-19 10:09) [15]
> ВладОшин © (18.07.16 23:52) [11]
ну, тогда я опять не понял...
ставить на b[i] ничего и не надо. надо допилить этот самый чат, чтобы он имитировал общение, которое никто не видит, в паузах между реальным общением. Тогда на A[i] будет видно, что клиент задал вопрос в 11.00. оператор ответил в 13.00. за прошедших два часа допиленная фича переслала из компа b[i] в комп a[i] и обратно 288 сообщений (которые по сути являлись аналогом нормального общения) каждые 5 секунд, и отмазка оператора о плохом коннекте не катит.
← →
sniknik © (2016-07-19 10:57) [16]> чтобы он имитировал общение, которое никто не видит
судя по имени пойдет WTSIsChildSessionsEnabled
← →
ВладОшин © (2016-07-19 11:53) [17]
> Kilkennycat © (19.07.16 10:09) [15]
теперь я не понял
>> на A[i] будет видно, что клиент задал вопрос в 11.00. оператор ответил в 13.00
это все видно, логируется.
возникает вопрос, что делаешь ты 2 часа?
Ответ - у меня RDP проглючил, не мог мышку подвинуть толком на 10 пикселов в течении часа.
Проверка?
>> фича переслала из компа b[i] в комп a[i]
т.е. поставить на компы b[i] дополнительное "ПО". Или кто тогда будет слать?
Я с самого начала предлагал считать дельту
> DWORD IncomingBytes;
> DWORD OutgoingBytes;
> из
> WTSINFOEX_LEVEL1 structure
но тут что плохо - не понятно, эти байты они всегда гоняются или как.
если юзер ничего не делает, зачем их особо много гонять
а если их мало - это юзер ничего не делает, или это связь плохая
Николай вот что-то нарыл
пойду про WTS еще почитаю
вернусь-доложу )
← →
Игорь Шевченко © (2016-07-19 14:32) [18]Влад, зачем ты такой Кулибин ?
Купи программу Стахановец и не парься
← →
Cobalt © (2016-07-19 16:19) [19]> Rouse_ © (18.07.16 15:22) [5]
> > Cobalt © (18.07.16 14:32) [2]
> > А с целью?
> > Неужто юзер не сможет лучше понять качество подключения?
> Володь - ты иногда такие ответы даешь, хоть стой - хоть падай.
> Ты 24 кадра в секунду на глаз от 25 отличить сможешь?
Саш, ну видно же сразу, что вопрос ТСа - классический случай X-Y-Z.
Надо же как-то пнуть дальше раскрывать тему :-)
← →
NoUser © (2016-07-19 18:29) [20]> Как можно (еще) проверить что качество соединения RDP стало "плохим"?
Как вариант:
Сделай TCP-пинговалку на еще какой-нибудь порт на сервере,
придумай легенду (безопасность/учет/бонусы) по которой клиент запустит ее вместе с rdp.
← →
Rouse_ © (2016-07-19 18:30) [21]Ну... С этой позиции - согласен :)
← →
Rouse_ © (2016-07-19 18:32) [22]Не удобно с планшета писать, ответ, конечто на этот пост был :)
Cobalt © (19.07.16 16:19) [19]
← →
ВладОшин © (2016-07-19 18:59) [23]
Игорь Шевченко
> Купи программу Стахановец и не парься
судя по демке, неплохая программа )
но не..
Она не сможет как надо прореагировать в основной программе компании. Например, перевести софтверный звонок(голосового клиента), перекинуть клавиатурного клиента. Это тоже необходимо.
Да и суть всех этих программ - внедрить "стукача" )
На комп юзеру это не надо делать, а на RDP смысла нет. И так есть лог что в каком окне нажал, по какому контролу кликнул. Ситуация та же - да, видно, что 15 мин, к примеру, не было активности. Но это никак не скажет про качество коннекта RDP при этом.
> Cobalt © (19.07.16 16:19) [19]
да пинай, конечно )
X-Y-Z, так X-Y-Z, только не пойму все равно куда идти )
-----------
в общем, вот такое дело
WTSINFO structure
имеет
DWORD IncomingFrames;
DWORD OutgoingFrames;
и WTS_CONNECTSTATE_CLASS State;
остальное не интересно
считаю фреймы и статус:
ничего не делаю, смотрю на memo1
18:38:01 [State=WTSActive In=1662 Out=4072]
18:38:02 [State=WTSActive In=1662 Out=4073]
18:38:03 [State=WTSActive In=1662 Out=4074]
растет исходящий, на месте входящий
свернул окно RDP
18:38:17 [State=WTSActive In=1687 Out=4098]
18:38:18 [State=WTSActive In=1687 Out=4098]
18:38:19 [State=WTSActive In=1687 Out=4098]
все стоит
перекрываю RDP другим окном
18:38:31 [State=WTSActive In=1717 Out=4118]
18:38:32 [State=WTSActive In=1717 Out=4119]
18:38:33 [State=WTSActive In=1717 Out=4120]
тоже самое, что ничего не делать
открыл перекрытое RDP, что-то делаю
18:38:45 [State=WTSActive In=1747 Out=4144]
18:38:46 [State=WTSActive In=1755 Out=4150]
18:38:47 [State=WTSActive In=1762 Out=4152]
все растет
закрыл окно RDP крестиком
18:38:52 [State=WTSDisconnected In=0 Out=0]
18:38:53 [State=WTSDisconnected In=0 Out=0]
18:38:54 [State=WTSDisconnected In=0 Out=0]
подсоединился, что-то делаю
18:39:11 [State=WTSActive In=80 Out=91]
18:39:12 [State=WTSActive In=83 Out=92]
18:39:13 [State=WTSActive In=84 Out=93]
как бы испортить коннект теперь в процессе замера? )
← →
ВладОшин © (2016-07-19 19:13) [24]вырубил роутер из розетки
19:06:59 [State=WTSDisconnected In=0 Out=0]
19:07:00 [State=WTSDisconnected In=0 Out=0]
то же самое, что закрыть окно
а вот как бы изобразить, что связь через какой-нибудь модем на 14400 , с ошибками постоянными..
← →
Eraser © (2016-07-19 23:07) [25]
> ВладОшин © (19.07.16 18:59) [23]
можно внутри самого RDP сеанса проверять GetLastInputInfo.
в любом случае, нужно контролировать сам RDP сеанс, а не соединение. Не особо сложная задача, в принципе, если требуется просто функционал.
← →
sniknik © (2016-07-20 09:52) [26]> можно внутри самого RDP сеанса проверять GetLastInputInfo.
насколько понял не пойдет... т.к. против самого факта простоя никто не возражает. конфликт из-за причин простоя - работодатель говорит "вы ни хрена не делали", работник "так не мог, окно RDP висело, даже мышка не двигалась"... "пришлось зарубиться в дьяблу вне окна" (это уже мысленно).
ну типа так.
← →
ВладОшин © (2016-07-20 10:35) [27]
> sniknik © (20.07.16 09:52) [26]
да
Единственное что понятно:
Случай WTSDisconnected, понятно все, и надо клиента перекинуть.
Если нет ввода (входящих фреймов(или байтов)), то юзер ничего не делает или свернул окно или повисло.
А факт "повисло" опять не определен.
Случай нет ввода (юзер ничего не делает) - ну, такое может быть, если он перекрыл окно справочником и ищет что ответить клиенту. В т.ч. на своей реальной машине(на сайте через браузер, например, ищет в ЧаВо)
факт плохого коннекта, плохого коннекта. Как определить частоту обновления окна RDP, или аналогичное в терминах rdp
>> NoUser © (19.07.16 18:29) [20]
видел. Не ответил, т.к. это аналогичное "внедрить стукача" на реалку. Не, не пойдет. Во всяком, пока не выжму все "по-честному" из API
← →
ВладОшин © (2016-07-20 10:36) [28]Запустить торрентов что ли на 5 фильмов.. забить весь канал и посмотреть всякие замеры..
← →
iop © (2016-07-20 10:55) [29]бессмысленно все это.
и заниматься этим не надо.
← →
NoUser © (2016-07-20 21:39) [30]> ВладОшин © (20.07.16 10:35) [27]
Можно сварганить rdp-proxy и там задавать SIO_KEEPALIVE_VALS
а на десктопе крутить простенькую анимацию (менять картинку),
если свернуто, отсылки данных не будет, а если "подвиснет" - получишь разрыв.
> [28]
подключись через GPRS ))
← →
ВладОшин © (2016-07-24 21:11) [31]в общем, нашлась причина наверное 95% процентов..
Если юзер сидит не из под Windows, а из под Линукс через некий free-rdp клиент, цепляется на win, то например, происходит так, что связь порвалась, а free-rdp не показывает это.
т.е. юзер написал, ждет ответа, связь порвалась, картинка у него не меняется(!), а клиент в это время ответил, и тоже ждет..
Вот такая ерунда, сам видел, юзер заснял монитор - у него все хорошо, а в логе четко написано WTSDisconnected.
Проходит время, пока юзер понимает, что связи нет и делает ре-коннект, а клиент уже зол, 10 сообщений кинул и грозит в спортлото пожаловаться..
← →
iop © (2016-07-25 18:43) [32][29]
← →
ВладОшин © (2016-07-26 10:01) [33]
> iop © (25.07.16 18:43) [32]
как анекдот про анекдоты по номерам? )
читаю все, и где-то согласен с [29]
но надо понимать, что происходило. Хотя бы так, не совсем достоверно
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2018.01.21;
Скачать: [xml.tar.bz2];
Память: 0.55 MB
Время: 0.002 c