Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.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
Java 如何在SpringREST应用程序中与heroku一起使用longpolling?_Java_Spring_Rest_Http_Heroku - Fatal编程技术网

Java 如何在SpringREST应用程序中与heroku一起使用longpolling?

Java 如何在SpringREST应用程序中与heroku一起使用longpolling?,java,spring,rest,http,heroku,Java,Spring,Rest,Http,Heroku,我试图在部署到Heroku的REST spring控制器中使用DelferredResult进行长时间轮询。但是,如果没有数据发送,Heroku h12会在30秒后自动发送超时。我知道Nodejs有发送一个字节来保持连接和避免超时的功能。对于Spring,有什么方法可以做到这一点吗?我不知道使用Spring的示例,但这里有一个使用原始Servlet的示例(使用Servlet 3.0中的AsyncContext): 重要的是设置传输编码:chunked标题,然后定期将空白打印到响应中,我这样做:

我试图在部署到Heroku的REST spring控制器中使用DelferredResult进行长时间轮询。但是,如果没有数据发送,Heroku h12会在30秒后自动发送超时。我知道Nodejs有发送一个字节来保持连接和避免超时的功能。对于Spring,有什么方法可以做到这一点吗?

我不知道使用Spring的示例,但这里有一个使用原始Servlet的示例(使用Servlet 3.0中的AsyncContext):

重要的是设置
传输编码:chunked
标题,然后定期将空白打印到响应中,我这样做:

final ScheduledFuture chunkBlower = scheduledExecutor.scheduleAtFixedRate(new Runnable() {
  public void run() {
    try {
      async.getResponse().getWriter().print(" ");
      async.getResponse().getWriter().flush();
    } catch (IOException e) {
      // do nothing
    }
  }
}, 15, 15, TimeUnit.SECONDS);