Opened 8 years ago

Closed 8 years ago

Last modified 6 years ago

#215 closed баг (fixed)

Проблемы с определением состояния отсутствии связи с сервером

Reported by: san Owned by: dimag
Priority: critical Milestone: 2 очередь
Component: ПО MC04-Dispatcher. Пульт диспетчера/техника Keywords: connection
Cc: alx

Description

  1. Потеря связи с сервером определяется очень долго (порядка полминуты -минуты)
  2. Иногда программа так и не определяет это состояние, ждал более 10 мин.

r251

Change History (8)

comment:1 by san, 8 years ago

Priority: majorcritical

comment:2 by alx, 8 years ago

Cc: alx added

А насколько быстро (за какое максимальное время) отсутствие связи должно определяться?

comment:3 by san, 8 years ago

Клиенту хочется не более 10 секунд, в идеале несколько секунд.
А если пользователь отправляет какие-то команды на сервер желательно обнаружить ещё быстрее чтобы пользователь не увидя обратной связи на свои действия не думал что программа "зависла" (#216)

comment:4 by alx, 8 years ago

Для наличия видимой обратной связи не обязательно иметь соединение с сервером (или знать о его наличии). Тривиальный пример:

  1. пользователь нажимает кнопку;
  2. пользователь сразу получает обратную связь ("выполняем команду");
  3. идет собственно выполнение команды (возможно, длительное время);
  4. пользователь видит результат ("команду выполнить не удалось - такая-то ошибка").

То есть результат нажатия кнопки виден сразу, и независимо от всех прочих обстоятельств. Таким образом, приведенный в #216 пример - это скорее недостаток дизайна интерфейса, нежели проблема коннективити. Если, например, при нажатии кнопки "выкинуть пользователя из конференции" соответствующая плашка немедленно меняла бы вид (становилась другого цвета, на ней появлялась надпись "отключаем"), то у пользователя никак не могло бы возникнуть ощущение, что программа "зависла" и не реагирует.

Возвращаясь к теме этого тикета, для такого быстрого определения отсутствия связи единственное решение, которое мне видится - это активный периодический поллинг ESL какой-либо командой, типа version, uptime и т.п. Такая команда должна посылаться, если в течение заданного времени (скажем, 5 секунд) нет никаких других команд для посылки, таким образом, сокет никогда не будет простаивать дольше чем 5 секунд, и о возникновении проблемы с соединением пульт узнает быстро.

comment:5 by dimag, 8 years ago

Keywords: connection added
Resolution: fixed
Status: newclosed

r264
Отсуствие определяется в течение 1-5 секунд.
Повторное соединение выполняется в течение 1-2 секунд после появления связи

in reply to:  5 comment:6 by san, 8 years ago

Resolution: fixed
Status: closedreopened

Replying to dimag:

r264
Отсуствие определяется в течение 1-5 секунд.
Повторное соединение выполняется в течение 1-2 секунд после появления связи

Теперь постоянные ложные срабатывания

comment:7 by dimag, 8 years ago

Resolution: fixed
Status: reopenedclosed

comment:8 by san, 6 years ago

Milestone: Текущее2 очередь

Milestone renamed

Note: See TracTickets for help on using tickets.