实现用户可以一起交互的网站的最佳方式是什么

时间:2010-04-15 23:19:15

标签: java gwt communication chat file-sharing

我正在创建一个网站,用户可以通过浏览器聊天并发送文件。我正在使用GWT进行UI,并使用gilead进行hibernate连接到mysql数据库后端。

使用的最佳策略是什么,用户可以一起互动?

3 个答案:

答案 0 :(得分:2)

我会说你正在寻找彗星/ AJAX |服务器推/等。有关指示,请参阅my previous answer。基本上你正在模拟反转服务器和客户端之间的通信 - 它是服务器,它在这里启动连接,因为它想要,例如,通知用户他/她的朋友刚刚上线等。

此技术的实施变化非常快,因此我不会提出任何明确的建议 - 选择最适合您需求的建议:)

答案 1 :(得分:2)

COMET是一种允许通过网页聊天的技术 - 它基本上是通过保持连接的方式进行通信。这允许服务器将信息推送到客户端。 在GWT的客户端有几个这样的实现。 现在大多数服务器都支持这个,它也是Servlet 3.0规范的一部分(还没有人实现)

答案 2 :(得分:1)

虽然COMET非常好,但它不是唯一的解决方案!通常使用具有时间间隔的常规轮询(与COMET长轮询相反)。也可以要求用户手动刷新。

以Stackoverflow为例 - 对于大多数情况,您必须手动刷新浏览器以查看更改。我认为,它通常被视为正常和预期。 COMET或频繁的民意调查是一个额外的好处。

COMET的问题是,它很容易导致服务器上的大量线程。除此之外,如果您另外使用异步处理(也称为“高级IO”),但尚未得到很好的支持(例如由于严重的错误而无法在Glassfish v3中使用HTTPS),可能会导致Apache连接器等问题

频繁轮询的问题是,它会产生额外的流量。因此,通常需要使轮询不那么频繁,这将使最终用户不太方便。

因此,您必须根据具体情况权衡选项。