Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine 基于GWT Servlet的通知(服务器事件总线)_Google App Engine_Gwt - Fatal编程技术网

Google app engine 基于GWT Servlet的通知(服务器事件总线)

Google app engine 基于GWT Servlet的通知(服务器事件总线),google-app-engine,gwt,Google App Engine,Gwt,有人能想出一个好办法让服务器根据服务器处理通知客户机吗?例如,考虑以下事件: 用户请求删除数据,但是,由于其运行时间较长,我们将其启动到队列中 客户收到“是的,我们成功完成了您的交易” 服务器删除该项,现在想要更新任何客户端可能正在使用的任何本地结构(我也想通知用户) 我知道这可以通过客户端轮询来完成。是否有一种事件总线类型的方法来实现这一点?欢迎您提出任何建议,但请记住,我正在将GWT与App Engine一起使用。标准的AJAX交互是客户端向服务器发送请求,并期望很快得到某种响应 为了让服务

有人能想出一个好办法让服务器根据服务器处理通知客户机吗?例如,考虑以下事件:

  • 用户请求删除数据,但是,由于其运行时间较长,我们将其启动到队列中
  • 客户收到“是的,我们成功完成了您的交易”
  • 服务器删除该项,现在想要更新任何客户端可能正在使用的任何本地结构(我也想通知用户)

  • 我知道这可以通过客户端轮询来完成。是否有一种事件总线类型的方法来实现这一点?欢迎您提出任何建议,但请记住,我正在将GWT与App Engine一起使用。

    标准的AJAX交互是客户端向服务器发送请求,并期望很快得到某种响应

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


    或者,为了模拟这种交互,您可以使用项目在GWT中提供的(长轮询)。

    您想要GWT的服务器事件吗?看看GwtEventService(他们不可能选择更好的名称):


    当然,它使用了Comet实现,但是在使用HTTP时,您不能做任何不同的事情,客户机总是启动通信。请求,响应。

    如果你想扩展,就不能在App Engine上执行comet-每个comet请求都会占用你的一个并发请求。那么有更好的方法来实现这一点吗?客户端可以每X秒/分钟ping一次以查看服务器是否已完成,而不是进行全面的长轮询,但它的实时性不如comet/websockets。App Engine将很快发布对通道API的支持,以支持类似comet的功能。要在GWT中支持这一点,请参见以下示例代码: