【问题标题】:Pusher Beam stop private notifications but keep public notificationsPusher Beam 停止私人通知但保留公共通知
【发布时间】:2020-11-22 05:39:15
【问题描述】:

我有一个带有公共博客和私人后端的网站。登录与否,用户可以决定接收关于博客的浏览器通知,这是一个兴趣https://pusher.com/docs/beams/getting-started/web/sdk-integration#subscribe-to-an-interest

效果很好

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 中完全删除他的设备,这意味着公共博客通知不再起作用。

函数deleteUser的描述很明确:

从 Beams 中删除给定用户(及其所有设备)。该用户 将不再收到任何通知和存储的所有状态 他们的设备将被删除。

从我删除用户的那一刻起,我就开始在控制台中接收:

未捕获(承诺中)错误:意外状态代码 404:未找到, 未找到设备

如何停止私人通知但保留公开通知?

【问题讨论】:

    标签: javascript php pusher


    【解决方案1】:

    已解决

    我在注销时必须使用clearAllState JS 函数,而不是使用deleteUser PHP 函数。 https://pusher.com/docs/beams/reference/web#-clearallstate

    清除 SDK 中的所有状态,使其处于空的启动状态。 当您的用户注销时,您应该调用此方法 应用。

    这样,只有私人通知被清除,而公共通知保持活动状态。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-03
      • 2017-07-06
      • 2018-03-06
      • 1970-01-01
      • 2017-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多