我有一个学校项目,我必须在其中实现一个聊天应用程序,其服务器将是一个java Web服务。
问题是我一直认为Web服务是一种调用远程功能的方式,我不知道如何在Web服务上保持“会话”活动,也不知道如何跟踪所有的目前正在聊天,房间等的人。
答案 0 :(得分:6)
据我所知,聊天服务器应该在初始连接后知道其客户端,并将每个客户端消息发送给所有客户端。这肯定需要某种会话维护。我认为正确的做法如下:
我不确定消息分发应该如何工作,因为Web服务本质上是一种拉服务而不是推送。也许客户端应该公开自己的Web服务以供服务器调用。
希望这有帮助,
Yuval = 8 - )
答案 1 :(得分:1)
您可以考虑实施COMET解决方案。这将有效地为您提供推送通信,从而消除延迟,这是聊天应用程序的一个非常好的功能。
如果您想购买黄金,请考虑实施更多高级功能:
答案 2 :(得分:0)
我不懂Java所以这个答案将与语言无关。
在我看来,如果不在服务器上运行进程,最简单的方法就是将所有数据存储在数据库中。
以下是需要完成的基本事项的简短列表:
如果你仍然需要一些帮助,那么AJAX / ASP.Net聊天应用应该(我没有查看它的来源)以同样的方式工作。
答案 3 :(得分:0)
我写了一个聊天引擎,它在后台有一个服务,一切都存储在一个数据库,一个输入表单框架和一个接收html流的输出框架中。
如果您想跳过服务部分并仅通过Web服务实现,则需要实现至少两个操作:Post for input和GetLatestChanges以接收聊天的输出,该输出使用一些Javascript魔法转换为HTML。 / p>
当然,您需要跟踪房间,用户,消息,用户收到哪些文本等,如Unknwntech所描绘的那样。