@kibez

Как отследить закрытие PWA?

Есть PWA приложение. Можно-ли как-то отследить факть его закрытия ? Тоесть PWA ведет обмен с сервером. Так как канал между PWA апликухой и сервером не стабильный (мобильный интернет), то приходиться удерживать "сессию". Тоесть когда фактически инет пропадает сервер считает что все ок и продолжает держать сессию. Когда инет появлется клиент подключается к той-же сессии и все продолжается. НО!!
Если юзер просто ЗАКРОЕТ PWA (буквально как апликуху ... пристрелит), то сессия будет висет зря долгое время. Что не хороше ..... Есть-ли какой-то механизм детектинга закрытия PWA??
Или на крайняк можно-ли как-то с помощю сервис воркеров вести обмен с сервером ужа при закрытой PWA?
  • Вопрос задан
  • 265 просмотров
Пригласить эксперта
Ответы на вопрос 3
dollar
@dollar
Делай добро и бросай его в воду.
В случае убийства, PWA ничего не успеет сделать. С таким же успехом можно буквально прострелить телефон огнестрельным оружием или бросить в кислоту.

Просто найдите сбалансированную цифру, сколько держать сессию. Зависит от цены создания и поддержания сессии.

Чуть более умный вариант, если создание сессии дорогое - сделать кеш на стороне сервера конкретно для сессий, чтобы не сразу их удалять, но и не поддерживать полноценно. А если юзер вернётся, то с минимальными затратами восстановить сессию.

И ещё более умный вариант - как-то отслеживать (условно) "характер" пользователя. Например, если зашёл и закрыл, то сессия удаляется довольно быстро. А если вернулся через час, или на следующий день, то перевести пользователя в статус "активный", и для него вообще таймаут можно на пару дней поставить. Ну, опять же, в случае высокой цены создания сессии. Честно говоря, мне сложно представить задачу, где цена настолько высока, чтобы так заморачиваться.
Ответ написан
Комментировать
@rPman
Отследить прибитие приложения можно отдельным сервисом, работающим в фоне (внимание - батарейка), оно же может сообщить отдельным подключением об этом факте (простым http get запросом).
Ответ написан
Комментировать
@ofigenn
Если устроит visibilitychange event. Или как-то абузить background sync, от "пристреливания". Если не подойдет, то только таймаут сессии.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 13:31
10000 руб./за проект
19 апр. 2024, в 13:12
35000 руб./за проект
19 апр. 2024, в 13:06
6000 руб./за проект