Push notification 服务人员的推送支持是否依赖于互联网和第三方谷歌/苹果服务?

Push notification 服务人员的推送支持是否依赖于互联网和第三方谷歌/苹果服务?,push-notification,service-worker,push-api,Push Notification,Service Worker,Push Api,服务人员的推送支持是否依赖于Firebase(以及苹果的同类产品)?我找到的所有教程都有一个步骤,您可以注册Firebase帐户,但对于我们的webapp来说,这是不可能的,因为它将在没有互联网接入的场所使用 我本以为可以注册一个符合操作系统注册协议的URL,但我找不到这类信息 如果服务人员推送支持需要internet访问,我假设web应用程序接收后台通知的唯一选项是将其包装在本地web视图中,并使用该视图调用本地服务。如果您提供本地推送服务,则不需要internet或第三方推送服务在本地网络服

服务人员的推送支持是否依赖于Firebase(以及苹果的同类产品)?我找到的所有教程都有一个步骤,您可以注册Firebase帐户,但对于我们的webapp来说,这是不可能的,因为它将在没有互联网接入的场所使用

我本以为可以注册一个符合操作系统注册协议的URL,但我找不到这类信息


如果服务人员推送支持需要internet访问,我假设web应用程序接收后台通知的唯一选项是将其包装在本地web视图中,并使用该视图调用本地服务。

如果您提供本地推送服务,则不需要internet或第三方推送服务在本地网络服务器上,可以从客户端浏览器通过HTTPS URL访问该服务器。您的本地推送服务需要实现,您还可以在web或GitHub上搜索您选择的语言的开源推送服务


浏览器需要一个HTTPS URL,通过主机名或IP解析到网络上的服务器,因此最有可能使用自签名SSL证书。设备将需要隐式信任的证书(或CA)或显式添加为受信任的CA/证书。

tldr;它取决于您的浏览器,因为它需要按浏览器级别进行配置。截至2018年5月,似乎Firefox是唯一一个让你这么做的浏览器。对于其他人,您需要互联网才能发送推送消息。

2017年12月(即2018年5月的官方报告)指出:

术语推送服务是指允许应用程序服务器向webapp发送推送消息的系统。推送服务为推送端点或其服务的推送订阅的端点提供服务

每个用户代理只有一个推送服务,它不能从默认值更改。这种限制是由于与性能相关的各种问题造成的,包括运行可靠推送服务的复杂性,以及如果设备可以连接到一组无限的推送服务,则对电池寿命的影响

在中,规范现在允许配置不同的提供程序


我也推荐阅读,主要观点如下:

  • 首先,最终用户的web浏览器需要与浏览器制造商的推送服务器建立推送通道。在Firefox的情况下,这将是一个Mozilla服务器,在Chrome的情况下,这将是一个Google服务器。完成此操作后,将向浏览器发送一个唯一的端点URL,浏览器将生成一个公钥和私钥对,该公钥和私钥对存储在浏览器内部。然后,浏览器生成一个公钥和一个用户身份验证密钥,服务器使用该密钥将消息加密到用户的浏览器
  • 浏览器将公钥、身份验证密钥和端点URL发送到服务器,服务器以某种方式(在数据库、内存、文件等中)存储这些信息
  • 当服务器希望发送推送消息时,它将检索推送消息订阅上存储的信息,并使用公钥和用户身份验证创建加密消息。然后服务器联系端点URL并告诉它将一些内容推送到用户代理
  • 如果一切正常,推送服务器将消息推送到用户的浏览器

  • 哟,对不起,我不知道我是怎么接受这个答案的。我在打电话。问题是,我认为这是不对的。我现在已经查看了几个LIB的来源,它们都依赖于FCM、GCM等进行最后一英里的消息传递。例如,您可以尝试演示并查看
    /sendMessage
    的网络流量。当使用Chrome时,订阅数据始终有一个域
    fcm.googleapis.com/fcm/…
    endpoint
    。这也与
    web推送libs
    组织的Java lib的方式相一致:
    1。首先,最终用户的web浏览器需要与浏览器制造商的推送服务器建立推送通道。在Firefox的情况下,这将是一个Mozilla服务器,在Chrome的情况下,这将是一个Google服务器。完成此操作后,将向浏览器发送一个唯一的端点URL,
    。尽管如此,请随意证明我错了!没有比这更好的了:-)推送API应该是一个开源规范,防止供应商锁定,我建议等待Mozilla/Google工程师的加入。或者通过直接电子邮件向规范作者发送此问题的URL(在规范页面上找到他们)。它们通常都很棒,而且非常有用。我刚刚尝试使用Firefox访问了上面的演示,如前所述,它也使用Firefox自己的服务器作为端点向web推送服务注册:
    subscription{…}端点https://updates.push.services.mozilla.com/wpush/v2/gAAA...
    该规范链接来自2017年12月版,而且更为最新,并跟踪。不要放弃使用或提出问题。这是一个很好的实施建议。这是说明规范如何更改的一个很好的例子