Сеансы мобильного клиента

1. DmitrySinichnikov 286 04.01.21 17:18 Сейчас в теме
(3) Добрый день!

При использовании мобильного клиента столкнулся с проблемой зависания сеансов, если выход делать "не по инструкции". Т.е. когда вы просто выкидываете приложение, то сеанс остается и висит пока его не убьет сервер. На сервере настроено, что через 15 минут сеанс будет погашен.

Что смущает:
1) Сеанс может погаситься и у обычного пользователя. Т.е. начали оформлять документ, накликали товаров, заблокировали телефон и пошли по делам. Вернулись, разблокируем телефон - сеанса нет, данные потеряны.
2) 15 минут долго, имхо, при разработке крайне не удобно, т.к. либо выходи через меню, либо убивай сеансы ручками.

Что хотелось бы: Может есть какой-либо метод или "фишка", что бы при закрытии клиента на мобильном устройстве убивать сеанс. При этом не убивать сеанс, если клиент просто спит.

П.С. гугл и яндекс ведут на темы, где советуют поставить 15 минут.
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. DitriX 2093 04.01.21 17:26 Сейчас в теме
Ну потому что это логично. Вы пытаетесь решить вопрос не с того конца, как вариант - ринг вам в помощь, проверяйте что за сеанс и сами убивайте, если надо. Тут простого пути нет. Тем более, что сеанс когда выходит с мобильной, то клиентских вызовов нет.

Поднимите базу вторую, сделайте там хттп сервисы, пингуйте их с мобильной платформы, как только пинг не дошел за 2-3 минуты - просто убивайте сессию через ринг.
3. DmitrySinichnikov 286 04.01.21 18:16 Сейчас в теме
(2) Не вижу особых различий между пингом и настройкой на убийство сеансов. Не пробовал, но мне кажется, что при блокировке смартфона пинг тоже будет отсутствовать. плюс, постоянные пинги на базе в 1000+ пользователей тоже не очень хорошо.

Я больше надеялся, что 1С может отследить когда мобильный клиент выкидывают из памяти и на этом действии в фоне выполнять завершающие процедуры.
4. DitriX 2093 04.01.21 18:18 Сейчас в теме
(3) что то вы не туда воюете :)
1) Сеанс может погаситься и у обычного пользователя. Т.е. начали оформлять документ, накликали товаров, заблокировали телефон и пошли по делам. Вернулись, разблокируем телефон - сеанса нет, данные потеряны.
Проблема решается? Да, потому что вы увеличиваете это время до 3 часов, например

2) 15 минут долго, имхо, при разработке крайне не удобно, т.к. либо выходи через меню, либо убивай сеансы ручками.
Если вы не получили пинг с к лиента в течении 1 минуты - вы рубите сессию мобильного клиента. Т.е. не ждете 15 минут. Рубите по условию. И рубите только то что надо.
5. DmitrySinichnikov 286 04.01.21 18:34 Сейчас в теме
(4) Мне кажется мы зашли на второй круг. Поймите, сейчас работает приемлемо и менять скорость завершения сеансов с 15 минут до 1 особого смысла нет. Тут надо именно понимать, какой сеанс спит, заблокирован, потерял связь и т.д., а кокой именно завершен пользователем.
Если такой возможности нет, то все описанные вами способы не дадут полного понимания картины.

Если вы не получили пинг с к лиента в течении 1 минуты - вы рубите сессию мобильного клиента. Т.е. не ждете 15 минут. Рубите по условию. И рубите только то что надо.
Если смартфон заблокирован, будет ли выполнен пинг клиента? С самой ринг не работал, только покрутил взаимодействия, но там нет никакой жизни, пока смартфон заблокирован(
6. DitriX 2093 04.01.21 18:35 Сейчас в теме
(5)Если смартфон заблокирован, но 1с не убита, то тогда пинг будет идти, а если андроид убил приложение - то пинги исчезнут
7. DmitrySinichnikov 286 04.01.21 18:37 Сейчас в теме
(6) Спасибо, надо попробовать. У вас есть подобный опыт? Или может подскажете куда смотреть, что бы именно клиента пингануть?
8. DitriX 2093 04.01.21 18:38 Сейчас в теме
делаете левую базу, или прям в той же базе http сервис, и с мобильника раз в минуту делаете запрос на сервер, и на севрере фиксируете - когда был последний пинг, и если он не был - выкидываете, не обязательно через ринг, любой вариант выброса подойдет, их куча.
9. LineykaSBK 5 09.01.21 07:28 Сейчас в теме
Автор, есть два понятия в параметрах базы в режиме конфигуратора. Признавать спящим, и завершать спящие .
Спящий лицензии не кушает, кто мешает признавать спящий через 5 минут а убивать его через 3 часа, например. таким образом и сессия восстановится в течении 3 часов у спящего и лицензии не занимаются спящими - мне кажется вся проблема в лицензиях же?
10. LineykaSBK 5 09.01.21 08:00 Сейчас в теме
Поясню свой ответ. В режиме конфигуратора, в разделе администрирование, далее параметры базы, найти "признавать спящими через" и указать 300 секунд. далее завершать спящие через и указать например 3600 секунд.
Таким образом, если клиент заблочил мобильный то через 5 минут его сеанс освободить лицензию и будет признан спящим и если в течении часа он не возобновит работу, то его сеанс спящий завершится.
По мойму как раз Ваш вариант.
По крайне мере у меня именно так все и работает, и с уверенностью могу сказать что меня это полностью устраивает. Мобильных клиентов более 100 в общей сложности, активных в пиковое время чуть более 50-ти, разные регионы(часовые пояса) раскидывают пользователей по времени очень удачно.
11. DmitrySinichnikov 286 11.01.21 21:45 Сейчас в теме
(9) нет, с лицензиями все нормально и спящие ничуть не напрягают. Прочитайте топик еще раз, если сеанс спит по причине блокировки устройства - пусть спит на здоровье, хоть сутки. А вот если если сеанс остается после завершения работы приложения, то такой сеанс надо убивать. предыдущие методы, к сожалению, не подошли, приложение спит крайне глубоко и в фоне ничего не делает.
12. LineykaSBK 5 12.01.21 08:10 Сейчас в теме
(11) Читал вроде бы не через строчку, поэтому и рассказал подробно, как и что настроить что бы убивало, а вот вы видимо прочитали и зацепились за мое предположение за лицензии ))).
У меня настройка в параметрах базы, настраиваемое через конфигуратор, убивать спящие сеансы, которые спят более - (тут надо установить значение) ПРЕКРАСНО убивает любые спящие сеансы без всяких "двойных стандартов" )))


Ну а если Вы придумаете как системе научится понимать, "вне зоны действия устройство" или же просто чувак выкинул свое устройство на помойку - то напишите об этом разрабу - он, я уверен, реализует ваше ноу хау ))))
Прикрепленные файлы:
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот