Почему мои PushSubscription истекают так быстро? - PullRequest
0 голосов
/ 28 апреля 2020

Я следовал этому учебнику , чтобы реализовать уведомления pu sh в моем веб-приложении, и пока они работают, они очень быстро перестают работать. Похоже, что он хорошо обрабатывает первые пару уведомлений, но после этого, иногда, когда прошло менее пяти минут, срок подписки истекает, согласно моей серверной части. Я получаю код ошибки 410 от службы pu sh, которая, как говорится в руководстве, должна указывать, что срок действия подписки истек.

Это безумие, как срок действия подписки истекает менее чем за пять минут? Я искал свою проблему, и кажется, что ни у кого еще не было этой проблемы, некоторые даже говорили, что подписки могут длиться лет !

Я пытался реализовать прослушиватель событий в мой работник службы для события «pushsubscriptionchange», но согласно ответу Сержиньо , Chrome не реализовал это событие с 2019 года, и я не думаю, что с тех пор оно изменилось.

О, и хотя Chrome может обрабатывать подписку (но только один раз / два, как описано выше), Firefox даже ничего не делает. Я чувствую, что схожу с ума. Если я тестирую саму подписку pu sh, используя этот сайт , она работает в Firefox! и Chrome! Что они делают, что я не? Они показывают тот же код, что и учебник, который я связал выше.

Что еще я могу сделать на этом этапе? Возможно, я рассмотрел возможность создания интервала с setInterval() и повторной подписки пользователя каждую секунду или около того, но я не думаю, что это сработает.

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 29 апреля 2020

Вам абсолютно необходимо обработать pushsubscriptionchange в вашем сервисном работнике. В противном случае, когда срок действия подписки истечет и ее заменят новой, вы потеряете ее.

Chrome и большинство браузеров фактически инициируют это событие (я не знаю, где вы читаете что-то другое). Я уверен, что это срабатывает, потому что на нашем сервисе pu sh мы получаем тысячи обращений в час с этого события.

Посмотрите на нашего сервисного работника , если вам нужно вдохновение на как реализовать это событие. Затем на своем сервере вы просто заменяете старую подписку на новую.

...