客户端仅在AsnycContext.complete之后接收数据

时间:2013-07-23 07:07:57

标签: spring tomcat7 asyncsocket asynchronous

我使用AsyncContext异步处理客户端请求。在我的服务器端代码中,我正在做这样的事情。

- >在Controller类中,我正在检索AsyncContext并存储它。

@RequestMapping(method = RequestMethod.GET, value = "/xyz/")
public void getXyz(HttpServletRequest request, HttpServletResponse response) {
final AsyncContext asyncContext = request.startAsync(request, response);
map.put("xyz", asyncContext);

- >我的应用程序中的threadPool从MQ接收消息并在asyncContext上写入数据     //将消息转换为JSON字符串然后     //从地图检索上下文

asyncContext.getResponse().getOutputStream().print(strMessage);
asyncContext.getResponse().getOutputStream().flush();

如果这是最后一个块或者是异常

asyncContext.complete();

现在,问题或行为是我的浏览器正在进行GET调用,当服务器在输出流上写入时没有接收到数据,而只是在服务器执行时获取

asyncContext.complete();

我希望我的浏览器在输出流(并刷新)后立即接收数据,而不是等到asyncContext完成,因为它可能永远不会被调用。

寻找大气广播公司或HTML5 SSE等解决方案,但只使用AyncContext

0 个答案:

没有答案