我已经开发了一个 JSF Web 应用程序,现在我想为其添加聊天功能。问题是我不知道该怎么做。 AJAX 轮询(每 20 秒检查一次消息)对我来说似乎是一个坏主意(如果我错了,请纠正我),所以我想使用某种 Comet
(流媒体将是完美,但我不介意是否长时间轮询)。正如您可能怀疑的那样,所需的语言是 Java
。
我尝试过使用Grizzly
,但我找不到 JSF 的示例,只有一些使用 servlet。然后我尝试将 JMS
与 ManagedBean
一起使用,但我仍然不知道如何将消息带到前端(进行实际的推送)。有些人建议使用Atmosphere
,但有很多吹嘘(它适合JSF),但缺乏真实的例子让我对此产生怀疑。当然,我并不是拒绝这些技术,只是我不知道如何使用它们。
我不想使用某些 JSF 扩展(如 RichFaces、IceFaces 等),因为仅针对一项功能使用另一种实现似乎并不正确。我没有时间进行大量研究,因此查找这些框架的源代码也是不可能的。
我需要的是一个功能齐全的聊天示例(或一个很棒的实用教程),它应该可以满足我的需求。而且要尽快。
奖金因为我真的需要非常快的一个非常好的答案,我保证如果在 <= 24 小时(希望更少)内有一些好的信息(足以让我接受它),当我能够(两天内)时,我会给该用户悬赏。
最佳答案
查看cometD 。您可以在演示中找到基本的聊天实现。
专业人士:
- 功能非常强大(高性能)且易于使用
- 有据可查
- 在任何 Servlet 2.5+ 兼容容器上运行
- 与最常用的 Javascript 框架 jQuery 和 Dojo 完美集成
缺点:
- 目前还没有高可用性的集群解决方案(不过有集群解决方案,但如果一个节点崩溃,没有内置的状态恢复功能)
- 它不完全符合 CDI - EJB。这意味着您需要使用构造函数、getter 和 setter 才能使其在 Java EE 6 bean 中可用。你不能注入(inject)它(这不是真正的限制,这只是一种审美限制)。
关于java - JSF 聊天示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9979162/