我目前正在使用Spring MVC编写论坛Web应用程序。我只是春天的初学者,现在只用了大约一个星期。
我需要实现推送通知。以下是方案:用户A登录并创建帖子。当用户A仍然登录时,用户B对用户A的帖子发表评论。用户A收到一些用户已对其帖子发表评论的通知,而浏览器没有刷新页面。
我需要帮助向用户A发送通知,即用户B异步评论他的帖子。我做了一些研究,发现有一个名为CometD的软件包我可以使用,但我找不到任何简单的教程供我理解。
任何人都可以建议任何其他方法/方式来解决我的问题吗?或者,如果您有任何简单的CometD教程,那也很棒。
答案 0 :(得分:7)
我是CometD项目负责人。
CometD附带一个演示war文件,该文件具有内置的聊天应用程序,您可以将其用作了解CometD如何工作的基础,请参阅https://docs.cometd.org/current/reference/#_installation。
CometD完整的参考文档在这里:https://docs.cometd.org。
根据经验,我不建议使用Servlet 3.0异步功能来实现聊天,因为这将排除WebSocket的使用。
最好是依赖可以从WebSocket开始的CometD等框架(因为它更高效),然后如果WebSocket不起作用,则自动和透明地回退到HTTP。
在类似的说明中,我不推荐仅使用WebSocket方法,因为WebSocket在某些情况下不起作用(例如,移动网络通常不允许WebSocket流量),而且它是一个太低级别的协议,所以你会必须在WebSocket之上构建自己的协议(这是很多工作,不容易做对)。
CometD为您提供易于扩展的协议和自动传输回退功能,并具有大量功能(例如授权和身份验证以及仅提及两个群集)。
答案 1 :(得分:5)
看看Spring {MVC 3.2的spring MVC chat sample app,还有一个关于它的弹簧blog post。