我目前正在使用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();