任何人都可以想到一个好的方法来允许服务器根据服务器处理通知客户端吗?例如,考虑以下事件:基于GWT Servlet的通知(服务器事件总线)
- 用户请求删除数据,但是由于它的运行时间很长,我们将其踢出队列。
- 客户收到“是,我们已成功完成您的交易”。
- 服务器删除该项目,现在想要更新任何客户端可能使用的本地结构(我也想通知用户)。
我知道这可以通过客户端轮询来完成。是否有事件总线类型的方式来做到这一点?欢迎提出任何建议,但请记住我正在使用GWT和App Engine。
任何人都可以想到一个好的方法来允许服务器根据服务器处理通知客户端吗?例如,考虑以下事件:基于GWT Servlet的通知(服务器事件总线)
我知道这可以通过客户端轮询来完成。是否有事件总线类型的方式来做到这一点?欢迎提出任何建议,但请记住我正在使用GWT和App Engine。
标准的AJAX交互是客户端向服务器发送请求并期望相当快速地回复某种响应。
为了让服务器向客户端发起请求,您需要使用WebSockets,并且目前Chrome仅支持实验性HTML5功能。
或者,为了模拟这种交互,您可以使用Comet(long-polling),通过rocket-gwt项目在GWT中提供。
你想为GWT服务器事件?看看GwtEventService(他们不能选择更好的名字):http://code.google.com/p/gwteventservice/wiki/StartPage
当然,它采用了Comet实现,但使用HTTP,当你不能做任何的不同,客户端总是启动通讯。请求,响应。
rocket-gwt如何设法在应用引擎上做彗星? – 2010-03-02 00:21:58
请参阅http://code.google.com/p/rocket-gwt/wiki/Comet上的文档 – 2010-03-02 01:40:51
如果要缩放,则不能在App Engine上创建慧星 - 每个慧星请求都会捆绑您的一个并发请求。 – 2010-03-02 09:43:15