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