【问题标题】:JSF+AJAX push : realtime chat / notification systemJSF+AJAX 推送:实时聊天/通知系统
【发布时间】:2012-05-03 11:06:58
【问题描述】:

我正在尝试向我的网络应用程序添加一些功能,例如“实时用户对用户”聊天(如 Facebook 的聊天)和实时通知系统。

让我们考虑一下这种情况: 我们有两个用户,A 和 B。

A 向 B 发送消息。

如果 B 和 A 之间的聊天窗口在 B 的浏览器上打开,我们会更新它,在 B 的浏览器上显示新消息。 如果窗口没有打开,我们需要在 B 的浏览器上显示通知或其他内容。

那么,有一个 PrimeFaces Dialog 作为聊天窗口和一个 PrimeFaces NotificationBar 来显示通知,我该怎么做呢?

我不能使用 PrimeFaces 的推送,因为它们不适用于 Glassfish。

我发现了 ICEPush,这似乎是一个不错的方法,但是关于“渲染组”的事情阻止了我尝试它。 如果 ICEPush 谈论群组,我如何只更新单个客户端?

我应该为每个客户创建一个新组吗?

类似的东西: B 有一个“BwithA”组,当 A 向 B 发送消息并打开聊天时更新,还有一个“notificationsB”组,当聊天窗口关闭时更新?

我不知道该怎么做,因为即使以这种方式使用组,A 也必须告诉 B 他需要更新,而 A 不知道 B 是否必须更新对话框或通知栏!

希望问题说清楚,因为不好解释|

提前致谢:)

【问题讨论】:

  • 这不适合 JSF + PrimeFaces,而是尝试使用 jquery。这是一个示例:code.google.com/p/jquery-stream/wiki/ChatExample
  • 感谢您的链接。您是说没有可以处理它的 JSF 库? ICEFaces 或 RichFaces 都不是?因为我的项目中并不能真正使用jQuery!
  • 我的意思是推送/轮询组件对于处理实时聊天的聊天应用程序不是很好。相反,您应该使用更轻的东西,而 jquery 提供了它。无论如何,您可以尝试使用 JSF + RichFaces 推送和投票(查看投票示例 richfaces-showcase.appspot.com/richfaces/component-sample.jsf?但刷新时间并没有您想象的那么快)
  • 我知道,但这只是我的考试作业,所以我不需要它来获得最佳表现!我已经在使用 PrimeFaces 的民意调查,但我想知道是否有一种方法可以避免民意调查产生的大量请求:)
  • 正如我已经评论过的,没有

标签: jsf jakarta-ee primefaces push icepush


【解决方案1】:

我不知道专业的 Java 程序员会如何解决您的问题,但是当我想创建聊天时,我使用标准的 Primefaces 远程命令组件和回调参数来创建聊天并将新消息从服务器。

网页上有一个p:remoteCommand 组件。该组件的目的是在调用动作侦听器时从特定用户获取最新消息。新消息通过“回调参数”从服务器传递到 javascript 函数(组件的 oncomplete 事件的处理程序)。然后该函数检查是否有任何消息并将它们附加到聊天框。

欲了解更多信息,请参阅How to create JSF chat with AJAX

UPD:上述解决方案已过时。现在我将使用 JAX-RS Web 服务或 Web 套接字来实现聊天。还有实时数据流的商业解决方案:PubNubPusher

【讨论】:

  • 基本上是我已经在使用民意调查所做的事情。我想要一个推送版本,以避免每秒发出一个新请求!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-12-29
  • 2016-09-25
  • 2018-01-20
  • 1970-01-01
  • 1970-01-01
  • 2016-02-27
  • 2017-08-13
相关资源
最近更新 更多