我正在创建一个网站,用户可以通过浏览器聊天并发送文件。我正在使用GWT进行UI,并使用gilead进行hibernate连接到mysql数据库后端。
使用的最佳策略是什么,用户可以一起互动?
答案 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连接器等问题
频繁轮询的问题是,它会产生额外的流量。因此,通常需要使轮询不那么频繁,这将使最终用户不太方便。
因此,您必须根据具体情况权衡选项。