【问题标题】:Push Notification in Spring MVC WebAppSpring MVC WebApp 中的推送通知
【发布时间】:2014-01-20 23:29:39
【问题描述】:

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

我需要实现推送通知。这是场景:用户 A 登录并创建一个帖子。用户 B 在用户 A 仍处于登录状态时访问了用户 A 的帖子。用户 A 收到通知,指出有用户评论了他的帖子,而他的浏览器没有刷新页面。

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

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

【问题讨论】:

  • 看看异步支持(DeferredResult)和 Spring 4 WebSockets 支持。
  • 您的views 使用的是什么? JavaScript 和 jQuery 有 AJAX GET 和 POST 请求。他们可能会救你。试试this

标签: java spring spring-mvc push-notification cometd


【解决方案1】:

我是 CometD 项目负责人。

CometD 附带一个演示 war 文件,其中包含一个内置聊天应用程序,您可以将其用作了解 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 为您提供易于扩展的协议和自动传输回退,并具有大量功能(例如授权和身份验证以及集群,仅举两个)。

【讨论】:

  • 否认你是 CometD 的项目负责人 ;-) 所以这个答案仍然是主观的。
  • 您给定的链接已失效。
【解决方案2】:

查看 Spring MVC 3.2 的 spring MVC chat sample app,还有一个关于它的 spring blog post

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-07
    • 1970-01-01
    • 2015-09-06
    • 1970-01-01
    相关资源
    最近更新 更多