3

我按照教程实现了一个简单的聊天应用程序。我正在最新的 Mozilla Firefox 和 Google Chrome 浏览器中对其进行测试。

我主要担心的是消息交换似乎不是实时发生的。即使所有服务器处理都发生在请求后不到一秒的时间内,浏览器AsyncContext也会在超过超时后立即获得响应。

甚至是默认的 10 秒或通过AsyncContext.setTimeout()响应时间添加的自定义值与超时相同。这应该是预期的行为吗?有没有办法强制服务器在准备好后立即发送响应而不等待空洞超时间隔?

4

1 回答 1

3

您可能忘记complete了异步上下文。Java 6 文档:http ://docs.oracle.com/javaee/6/api/javax/servlet/AsyncContext.html#complete ()

watcherExecutor.execute(new Runnable(){
                        public void run() {
                           // publish a new bid event to a watcher
                           aCtx.getResponse().getWriter().print("A new bid on the item was placed. The current price ..., next bid price is ...");
                           aCtx.complete();
                        };
                     });
于 2012-08-21T10:22:40.720 回答