0

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

我希望user_a能够user_b在我的 webapp 中发送消息。

我想user_b收到这方面的通知。

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

任何人都可以帮助我了解更多吗?

4

3 回答 3

1

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

于 2014-04-22T16:27:08.453 回答
0

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

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

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

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

于 2014-10-02T04:41:53.853 回答
0

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

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

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

于 2014-10-02T05:00:50.890 回答