春季 MVC WebApp 中的推送通知

我目前正在使用Spring MVC编写一个论坛Web应用程序。我只是Spring的初学者,现在只用了大约1周。

我需要实现推送通知。下面是以下场景:用户 A 登录并创建一个帖子。用户 B 在用户 A 仍处于登录状态时对用户 A 的帖子发表评论。用户 A 收到一条通知,指出某个用户已对其帖子发表评论,而他的浏览器不会刷新页面。

我需要帮助向用户 A 发送通知,告知用户 B 已异步评论他的帖子。我做了一些研究,发现有一个名为CometD的软件包,我可以使用,但我找不到任何简单的教程让我理解。

任何人都可以建议任何其他软件包/方法来解决我的问题吗?或者,如果您有任何简单的CometD教程,那也很棒。


答案 1

我是彗星项目负责人。

CometD附带了一个演示战争文件,其中包含一个内置的聊天应用程序,您可以使用该应用程序作为了解CometD如何工作的基础,请参阅 https://docs.cometd.org/current/reference/#_installation

CometD的完整参考文档在这里:https://docs.cometd.org

根据经验,我不建议使用Servlet 3.0异步功能来实现聊天,因为这将排除WebSocket的使用。

你最好依靠像CometD这样的框架,这些框架可以从WebSocket开始(因为它更有效),然后在WebSocket不起作用时自动透明地回退到HTTP。

同样,我不建议使用仅WebSocket方法,因为WebSocket在某些情况下不起作用(例如,移动网络通常不允许WebSocket流量),并且它是一个太低级的协议,因此您必须在WebSocket之上构建自己的协议(这是很多工作并且不容易正确)。

CometD为您提供了一个易于扩展的协议和自动传输回退,并具有大量功能(例如授权和身份验证以及集群仅举两例)。


答案 2

看看春季MVC 3.2的春季MVC聊天示例应用程序,还有一篇关于它的春季博客文章


推荐