Chrome推送通知端点+用户标识

vax*_*Xxa 5 push push-notification google-cloud-messaging web-push push-api

我计划整合针对Chrome的推送通知(推送API和通知API).

成功订阅后,Chrome服务器会向客户端发送一些特殊令牌("端点"),您可以使用该令牌识别客户端并发送任何推送消息.

来自doc:

端点应该保存在服务器上,供每个用户使用,因为您需要它们以后发送推送消息.

我有几个问题:

  1. 如何在服务器端管理"端点"?在您通过AJAX成功订阅服务器并保存到数据库后,您会发送此"端点"吗?或者您将其保存到cookie中,然后在登录/注册请求后将其保存在服务器上.
  2. 我想知道,你如何将"端点"与真实用户联系起来?用户可以打开您的站点,单击"允许"以显示推送通知,但他没有会话cookie,因此您无法在该时间用真实用户识别此"端点".
  3. 这个"端点"有一些TTL吗?

Mar*_*rco 4

  1. 是的,您可以将其发送到服务器,服务器可以将其存储在数据库中。例如参见[ 1 ]。
  2. 这取决于您的应用程序。有时您不需要将端点链接到用户。如果这样做,那么端点就可以是user服务器上对象的属性。如果用户在登录之前注册推送通知,那么您无法判断该端点与该用户相关。当用户登录时,您可以将更新的信息发送到服务器。
  3. 是的,端点可能会过期(请参阅[ 2 ])。发生这种情况时,将触发 'subscriptionchange' 事件,服务工作人员可以侦听此事件并将更新的信息发送到服务器(同样,您可以参见 [ 1 ] 作为示例,或 [ 3 ])。