网络推送消息是如何传递的?

2023-11-29

我尝试为网页设置推送消息。虽然我了解前端部分(Push API)并且有一个工作的本地主机演示应用程序,但我只是不明白服务器如何将消息推送到浏览器。

推送服务中的包如何路由到客户端?客户端没有域名,通常也没有固定的IP地址,那怎么可能呢?

我读了Google 的 Web Push 库指南和部分RFC 8030,但如果他们有这个问题的答案,我却找不到答案。


您的应用程序服务器使用浏览器端点作为 URL 发出 POST 请求。

浏览器端点类似于:https://updates.push.services.mozilla.com/A_VERY_LONG_TOKEN_123。这意味着 POST 请求将发送到浏览器制造商拥有的 Web 服务(例如 Firefox 的 Mozilla autopush)。

然后浏览器推送服务负责将消息传递到浏览器。客户端与浏览器推送服务创建持久连接。还要考虑,一旦建立 TCP 连接,您将获得全双工/双向通道(服务器可以在没有客户端事先请求的情况下发送消息)。

另请参阅此关于Web推送的介绍.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

网络推送消息是如何传递的? 的相关文章

  • 如何向网络浏览器发送推送通知?

    过去几个小时我一直在阅读有关推送通知API and 网络通知API 我还发现 Google 和 Apple 分别通过 GCM 和 APNS 免费提供推送通知服务 我想了解我们是否可以使用桌面通知向浏览器实现推送通知 我相信这就是 Web 通
  • 在Rails中生成VAPID公钥并将其传递给Javascript

    为了将 Push API 与 VAPID 一起使用 我需要一个applicationServerKey serviceWorkerRegistration pushManager subscribe userVisibleOnly true
  • 获取 PushManager 订阅时出错 - JavaScript

    我有以下代码 用于注册服务工作人员并要求用户允许通知 在用户允许推送通知 其中承诺返回 后 我收到错误serviceWorkerRegistration pushManager getSubscription is null 当我关闭浏览器
  • Firebase 云消息传递无法与 Samsung Internet 配合使用

    我正在设置 Firebase Cloud Messaging 以在网络上推送通知 它可以工作 但到目前为止仅适用于 Chrome Windows 和 Android 和 Firefox Android 它无法在 Samsung Intern
  • 如何添加推送通知分析

    我正在开发渐进式网络应用程序 我想实现推送通知的分析 如何添加推送通知分析 以便我能够跟踪和记录有多少人点击了通知 以及有多少人在不点击通知的情况下关闭了该通知 我编写了一小段代码来使用 Google Analytics 进行分析 并且效果
  • Asp Net Core Web 推送通知

    主要目标是向站点添加发送 Web 通知的功能 以弹出系统通知 以使用 Html5 Push API 和服务工作人员提醒用户 不使用 SignalR 它只能在打开站点时运行客户端脚本 如前所述 还应该能够在网站关闭时发送通知here http
  • Chrome 切换到 OSX 通知后,网络推送通知未显示

    由于 Chrome 切换到本机 OSX 通知 有时我尝试使用网络推送和我的 Service Worker 显示的通知不会出现 它们在 Chrome 的早期版本中一致出现 自从他们开始做这项工作以来 我应该改变什么吗 确保 请勿打扰 已关闭
  • 使用 VAPID 进行 Web 推送:400/401 未经授权的注册

    首先 我已经检查过这些问题 但没有任何运气 Web Push API Chrome 返回 未经授权的注册 https stackoverflow com questions 40801235 web push api chrome retu
  • 在 Vaadin 7 应用程序中使用推送在多个客户端之间显示相同的数据

    我想向多个客户端共享同一组数据 我需要使用推送来自动更新他们在屏幕上的视图 我已阅读问题和答案 Vaadin 7 应用程序中推送的最小示例 Push https stackoverflow com q 27808460 642706 现在我
  • 删除网络推送通知

    有没有办法在显示后删除网络推送通知 要将其从设备上的通知列表中删除 或将其标记为 已读 我认为这不能从服务器完成 并且我一直在寻找 Javascript API 但我没有找到任何东西 我试图解决的更广泛的问题是如何在多个屏幕 浏览器 设备上
  • 我应该如何处理pushsubscriptionchange事件?

    根据规格 https www w3 org TR push api the pushsubscriptionchange event a pushsubscriptionchange事件表示 推送订阅已失效 或即将失效 处理此事件的最佳做法
  • 有没有办法即使在 Chrome 或 Firefox 关闭时也显示桌面通知?

    我们正在开发一个使用 GCM 向最终用户发送推送通知的网站 我们已经了解了 Service Worker 等所有内容 我们用这个开发了一个原型codelab https developers google com web fundament
  • Service Worker 注册失败

    我目前正在研究服务人员来处理浏览器中的推送通知 目前我遇到了 软件注册失败错误 软件注册失败 出现错误 SecurityError 无法注册 ServiceWorker 不支持当前源 null 的 URL 协议 Check client1
  • 使用curl发送消息时出现网络推送通知错误

    我想了解什么是网络推送以及如何将其用于我的项目 已经找到这个例子了https mobiforge com design development web push notifications https mobiforge com desig
  • Vaadin 7 应用程序中推送的最小示例(“@Push”)

    我想看看使用新功能的最小示例推送技术 https vaadin com book vaadin7 page advanced push html在 Vaadin 7 中 例如新的 Push注解 我在获取时遇到问题服务器推送 http en
  • Push API 和服务器发送事件有什么区别?

    从文档中我可以看出Push API http w3c github io push api and 服务器发送事件 http www html5rocks com en tutorials eventsource basics 两者都是半双
  • FCM 数据消息无法在 Firefox 中加载

    我正在使用 Web FCM 进行云消息传递 当我发送一个通知有了标题和正文 Firefox 和 Chrome 都会显示通知并且工作正常 但是当我尝试发送 FCM 时Data消息 Firefox 不接收和记录消息 我正在使用一个HTTPS安全
  • PushManager订阅承诺从不履行也不拒绝

    我目前遇到一些 Chrome Chromium 版本的问题 其中PushManager subscribe来自 ServiceWorker 的承诺保持待处理状态 代码本身非常简单 return serviceWorkerRegistrati
  • 浏览器推送通知出现错误“AbortError:注册失败 - 推送服务不可用”

    我创建了一个系统 使用 Firefox 和 Chrome 的浏览器推送通知来与网站访问者进行更多交互 我正在查看我的 Google Analytics 事件 了解订阅失败的原因 最大的原因是 推送服务不可用 我查遍了一切 试图找到这意味着什
  • 发送网络推送通知时出错:没有端点?

    我创建了一个基本应用程序 尝试使用 web push 节点库发送推送通知 但是 我总是遇到错误 你必须至少传入一个端点 我不明白 因为我 订阅 使用 ServiceWorker Api subscribe 方法 它创建了一个到我的本地主机地

随机推荐