Есть такая проблема, что на странице spa в браузере при выключении экрана (допустим юзер смотрит на страничку в браузере, но нажал кнопку выключения, или просто экран погас из-за неактивности юзера - он просто смотрит, не свайпит, не тапает) ложатся сокеты.
Экран погас, затем юзер включает экран, видит браузер, видит страничку которая и была. Он не тапает, не свайпит - прост осмотрит, например на встроенный чат. Рест-апи при этом будет нормально работать, если он куда-то кликнет, а вот сокеты - лежат.
Юзер включил погасший экран кнопкой, видит страницу с чатом, а чат не обновляется, ничего не происходит - сокеты отрубились в момент выключения экрана.
Вопрос: на какое событие бы повесить перезапуск сокетов? Есть ли какое-то событие, происходящее в браузере в момент включения экрана? Может фокус, или что-то подобное?
Я бы использовал visibilitychange: у меня только оно и заработало.
<!DOCTYPE html>
<html>
<head>
<script>
(function() {
const events = [
"pagehide", "pageshow", "unload", "load", "visibilitychange"
];
events.forEach(e =>
window.addEventListener(e, () => alert(e), false)
);
})();
</script>
</head>
<body>
</body>
</html>
Сборка персонального компьютера от Artline: умный выбор для современных пользователей