2010-03-01 38 views
2

任何人都可以想到一个好的方法来允许服务器根据服务器处理通知客户端吗?例如,考虑以下事件:基于GWT Servlet的通知(服务器事件总线)

  1. 用户请求删除数据,但是由于它的运行时间很长,我们将其踢出队列。
  2. 客户收到“是,我们已成功完成您的交易”。
  3. 服务器删除该项目,现在想要更新任何客户端可能使用的本地结构(我也想通知用户)。

我知道这可以通过客户端轮询来完成。是否有事件总线类型的方式来做到这一点?欢迎提出任何建议,但请记住我正在使用GWT和App Engine。

回答

2

标准的AJAX交互是客户端向服务器发送请求并期望相当快速地回复某种响应。

为了让服务器向客户端发起请求,您需要使用WebSockets,并且目前Chrome仅支持实验性HTML5功能。

或者,为了模拟这种交互,您可以使用Comet(long-polling),通过rocket-gwt项目在GWT中提供。

+0

rocket-gwt如何设法在应用引擎上做彗星? – 2010-03-02 00:21:58

+0

请参阅http://code.google.com/p/rocket-gwt/wiki/Comet上的文档 – 2010-03-02 01:40:51

+0

如果要缩放,则不能在App Engine上创建慧星 - 每个慧星请求都会捆绑您的一个并发请求。 – 2010-03-02 09:43:15