3

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

为了让用户可以一起互动,最好的策略是什么?

4

3 回答 3

2

我会说你正在寻找彗星/AJAX|服务器推送/等。请参阅我之前关于此问题的答案以获取一些指示。基本上,您正在模拟服务器和客户端之间的通信反转 - 这是在此处启动连接的服务器,因为它想例如通知用户他/她的朋友刚刚上线等。

这种技术的实现变化很快,所以我不会给出任何明确的建议——选择最适合你需要的:)

于 2010-04-16T00:17:06.180 回答
2

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

于 2010-04-16T00:19:17.750 回答
1

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

以 Stackoverflow 为例 - 对于大多数事情,您必须手动刷新浏览器才能看到更改。我认为,这通常被认为是正常的和预期的。COMET 或频繁的轮询是一个额外的好处。

COMET 的问题在于,它很容易导致服务器上出现大量线程。除非,如果您另外使用异步处理(也称为“高级 IO”),它还没有得到很好的支持(例如,由于严重的错误,在 Glassfish v3 中不能与 HTTPS 一起使用),可能会导致 Apache 连接器等问题.

频繁轮询的问题在于,它会产生额外的流量。因此,通常需要降低轮询频率,这会降低最终用户的便利性。

因此,您将不得不根据您的特定情况权衡选项。

于 2010-04-16T09:31:23.273 回答