Jetty 是否支持 HTTP 分块响应/传输编码?



我目前正在使用Jetty 8,我想在servlet响应中编写几个事件(文本)。例如:

写入开始写入事件2写入事件3写入完成

全部由 分隔

此响应的跨度可能不超过 20 秒,但客户端应在发生时接收每个事件(行)。我找不到任何关于此的文档,但我想与社区核实。

如果 Jetty 不这样做,是否有任何其他 servlet 引擎可以嵌入并且也可以嵌入?

顺便说一句,我尝试了以下内容,但在 servlet 返回然后一次收到之前没有收到任何数据。

  resp.setContentType("text/html");
    resp.setHeader("Transfer-Encoding", "chunked");
    resp.getWriter().write("closing");
    resp.getWriter().flush();
    try {
        Thread.sleep(5000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    resp.getWriter().write("closed");
    resp.getWriter().flush();

编辑:必须使用 \r 作为行终止符

如果每行都以 \r 结尾,则它有效

    resp.setContentType("text/html");
    resp.setHeader("Transfer-Encoding", "chunked");
    resp.getWriter().write("closingrn");
    resp.getWriter().flush();
    try {
        Thread.sleep(5000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    resp.getWriter().write("closedrn");
    resp.getWriter().flush();

最新更新