【问题标题】:Web Notifications (HTML5) - How it works?Web 通知 (HTML5) - 它是如何工作的?
【发布时间】:2023-03-15 08:23:02
【问题描述】:

我正在尝试了解 HTML5 Web Notifications API 是否可以帮助我,但我无法理解它是如何工作的。

我希望 user_a 能够在我的 web 应用程序中向 user_b 发送消息。

我希望user_b 收到通知。

网络通知 API 可以在这里提供帮助吗?它是否让我专门针对某个用户(而不是通知所有人网站已更新_?我看不出如何为一个人创建警报。

谁能帮我多理解一点?

【问题讨论】:

标签: web-notifications


【解决方案1】:

通知 API 是客户端,因此它需要从其他客户端技术获取事件。在这里,请阅读:http://nodejs.org/api/。只是在开玩笑。 Node.js+socket.io 可能是最好的方式,您可以向一个或所有客户端发出事件(广播)。这是一个推动场景。或者每个用户都可以从服务器中提取他们的通知。

【讨论】:

    【解决方案2】:

    HTML5 Web Notifications API 使您能够显示应用程序生成的桌面通知。 您想要实现的是另一回事,网络通知只是您的场景的一部分。

    根据你如何管理你的应用程序,为了聊天和消息传递的目的,如 humbolight 提到的,你应该研究 node.js。它将为您提供必要的后端来管理用户之间的消息发送和接收。

    要通知用户他已收到一条消息,您可以在客户端选择 ajax 轮询。 只需创建一个每 x 秒 ping 一次服务器的 javascript,并检查是否有任何通知或新消息可供该用户使用。 如果响应成功,那么您可以使用 HTML5 通知 API 向用户显示一条消息,表明他有一条新消息。 长轮询的主要问题是服务器负载和带宽使用,即使没有消息,如果用户数以千计,那么您的服务器总是忙于响应轮询调用。

    另一种方法是使用服务器发送事件 API,您可以在其中向服务器发送请求,然后服务器将通知/消息在可用时立即推送到客户端。 这减少了不必要的客户端->服务器轮询,在您的情况下似乎是更好的选择。 要开始,您可以在以下位置查看一个很好的教程 HTML5Rocks

    【讨论】:

      【解决方案3】:

      您正在寻找的是WebSocket。该技术允许客户端(浏览器)打开与服务器的持久连接并随心所欲地从服务器接收数据,而不必“轮询”服务器以查看是否有任何新内容。

      这里的其他答案已经提到了node.js,但 Node 只是在您的服务器上实现 websocket 的一个(尽管可以说是最好的)选项。您可能还喜欢Ratchet,这是一个用于 PHP 的 websocket 服务器库,或者Tornado,它是 Python 中的。

      您如何处理实时通信取决于您。 Websocket 只是您可以用来来回传递数据的底层技术。客户端将相当容易,但在服务器端,您需要一种机制让 websocket 处理程序相互获取信息。使用ZeroMQ 等工具处理队列,使用MemcachedRedis 处理不需要永久存储的大量数据。

      【讨论】:

        猜你喜欢
        • 2010-11-29
        • 1970-01-01
        • 1970-01-01
        • 2014-07-24
        • 1970-01-01
        • 2012-09-12
        • 1970-01-01
        • 1970-01-01
        • 2018-11-28
        相关资源
        最近更新 更多