gpt4 book ai didi

javascript - 如何实现推送通知跨浏览器?

转载 作者:行者123 更新时间:2023-11-29 21:05:13 24 4
gpt4 key购买 nike

我有一个 Web 应用程序,我需要用户能够看到他们的通知是否已到达。我希望通知图标在有新图标时更改其状态。

基本上,我想监听 API 端点何时为当前用户更新它的状态,以及前端如何更改它的状态。

我想将该端点作为可观察对象,将前端作为观察者,但我不知道这是否符合我的需要。

有什么想法吗?

最佳答案

我建议使用网络套接字实现,例如 Socket.io .

虽然有许多 Socket.io 的替代品,但它的主要优点是它为旧浏览器提供了多种回退。所以,例如如果网络套接字不可用或不起作用,它会尝试 AJAX 长轮询。通过这种方式,您甚至可以支持当时创建的浏览器,当时甚至没有人知道 Web 套接字是什么 - 但对您来说,API 保持不变。

如果您知道您只需要处理现代浏览器,您可以使用更轻量级的替代方案,例如ws .

如果您正在寻找完全不同的东西,它完全基于 HTTP 并且不需要额外的协议(protocol),您可能会对 HTML5 Server-sent events 感兴趣.它们工作得很好,但与网络套接字相比,它们不是双向的,它们是 currently not supported in IE and Edge .它们还有一些其他缺点。例如,无法将自定义 header 添加到 SSE 请求。

对于 HTTP2,Web 套接字在未来仍有多大影响可能值得怀疑,特别是如果您考虑到诸如 Streams API 之类的东西。然后,您基本上可以使用纯 HTTP 解决所有问题,这也有一些优势。但是现在,Streams API 还没有出现,让我们拭目以待吧……

关于javascript - 如何实现推送通知跨浏览器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44442886/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com