我是新来的彗星。在Java中使用彗星进行基于Web的聊天?
任何人都可以告诉我如何在java中使用彗星实现基于web的聊天(任何web技术例如JSP,servlet struts等)。
任何帮助大大appriciated。
谢谢。
我是新来的彗星。在Java中使用彗星进行基于Web的聊天?
任何人都可以告诉我如何在java中使用彗星实现基于web的聊天(任何web技术例如JSP,servlet struts等)。
任何帮助大大appriciated。
谢谢。
使用maven(Struts2网站)设置一个基本的Struts2应用程序。
添加spring插件。
创建一个服务对象,它将保存聊天消息的日志(List<Map<int, String>>
)。添加的每条消息都向列表中添加了一个新的地图,索引1大于提交的消息的前一个。如果列表达到特定大小,请删除最低的邮件以保持最大大小。 (有更好的数据结构,但你可以弄清楚)。
添加Struts2-JSON插件。
创建两个json动作(阅读如何使用Struts2-JSON插件)。 SendMessage和GetMessagesSince Action。还要创建一个基本的动作来创建聊天页面(我也会使用约定插件)。
SendMessage将有一个消息的setter。为状态设置一个getter(返回“成功”或“失败”)是一个好主意。
GetMessagesSince为消息提供了一个getter,它将返回{int,Strings}列表。它将为lastMessage(int)设置一个setter。
现在为WebPage。此时只需使用短轮询(在短暂休息后循环中调用)以获得比'lastMessage'(将从零开始)更大的消息。使用jQuery魔法,您将获得GetMessagesSince的响应(如果有任何历史记录,它将启动聊天客户端)。您将使用列表中的最后一条消息为GetMessagesSince派生新值。
现在有了一些并发魔法,你可以实现长轮询。您还可以在消息中添加日期,以便人们知道对话的年龄。您还可以通过创建聊天队列的地图来添加不同的消息组,例如:Map<String, List<Map<int, String>>>
在这种情况下,我选择了字符串来标识您的聊天室。
如果你是认真的,我甚至可能会创建一个演示(它比听起来容易)。
只是好奇,但你做了一个聊天客户端与struts2? – Quaternion
为什么这个问题已被标记为struts2? –
谁知道,但它很有趣,很多人喜欢聊天客户端,这将是一个很好的教程。 – Quaternion