当我们调用ServiceWorkerRegistration.pushManager.subscribe()时会发生什么?

时间:2016-09-30 21:46:22

标签: push-notification push service-worker subscribe web-push

subscribe方法是否在客户端和推送服务之间建立了任何类型的连接?或者是将消息发送到存储在端点URL中的正确客户端所需的所有必要信息,以便不需要连接?

如果没有连接,如果客户端移动(更改IP地址),推送服务如何知道更新IP地址?

1 个答案:

答案 0 :(得分:1)

当您致电subscribe时,浏览器会连接到推送服务(例如GCMMozilla push service)并请求新的端点。

然后解析了 promise ,您可以将带有AJAX的端点发送到您自己的应用服务器(或Pushpad之类的服务)。您的服务器可以使用该端点发送通知(它就像电子邮件地址)。

最后,每次用户打开浏览器时,它都会连接到GCM,它会通过显示其端点(或者可能是与之关联的秘密)进行身份验证,并读取任何新通知。

有关详情:https://www.w3.org/TR/push-api/#sequence-diagram

  

如果没有连接,如果客户端移动(更改IP地址),推送服务如何知道更新IP地址?

必须有连接,否则无法发送通知。如果IP发生变化,这不是问题:它是连接到推送服务的客户端,反之亦然。

披露:我是Pushpad的创始人