Pusher Beam останавливает частные уведомления, но сохраняет уведомления publi c - PullRequest
0 голосов
/ 01 августа 2020

У меня есть веб-сайт с Publi c блогом и частным сервером. Выполнив вход или нет, пользователь может решить получать уведомления браузера о блоге, который представляет собой интерес https://pusher.com/docs/beams/getting-started/web/sdk-integration#subscribe интерес

Это отлично работает

const beamsClient = new PusherPushNotifications.Client(
{
    instanceId: '...'
});

beamsClient.start().then(() => beamsClient.addDeviceInterest('Blog'));

Если он ответит «Да» на уведомления, Pusher сохранит свой DeviceId, и все в порядке. Теперь, когда он войдет в мой частный сервер, он сможет получать уведомления непосредственно ему https://pusher.com/docs/beams/guides/publish-to-specific-user/web.

Это также отлично работает

const beamsTokenProvider = new PusherPushNotifications.TokenProvider(
{ 
    url: '...' 
});

const beamsClient = new PusherPushNotifications.Client(
{
    instanceId: '...'
});

beamsClient.start().then(() => beamsClient.setUserId('MY_USER_ID', beamsTokenProvider));

Проблема:

Когда пользователь решает выйти из системы, я удаляю его аутентифицированное устройство из Pusher Beam (https://pusher.com/docs/beams/reference/server-sdk-php# -deleteuser ) и моя цель - только помешать ему получать частные аутентифицированные уведомления, но он полностью удаляет его устройство из Pusher, что означает, что Publi c Blog Notifications больше не работает.

Описание функции deleteUser явно:

Удалите данного пользователя (и все его устройства) из Beams. Этот пользователь больше не будет получать никаких уведомлений, и все состояния, хранящиеся на его устройствах, будут удалены.

С момента удаления пользователя я начинаю получать в консоли:

Неперехваченная (в обещании) Ошибка: неожиданный код состояния 404: Не найдено, устройство не найдено

Как остановить частные уведомления, но сохранить уведомления Publi c?

1 Ответ

0 голосов
/ 01 августа 2020

Решено .

Вместо использования функции deleteUser PHP я должен использовать функцию clearAllState JS при выходе из системы. https://pusher.com/docs/beams/reference/web# -clearallstate

Очищает все состояние в SDK, оставляя его в пустом запущенном состоянии. Вы должны вызвать этот метод, когда ваш пользователь выходит из приложения.

Таким образом очищаются только частные уведомления, а уведомления Publi c остаются активными.

...