나는 단지 Server Events로 놀기 시작했고, 나는 이해하고 싶어하는 크롬 오류 메시지를 만난다. 나는 진짜 빨리 웹을 수색했다 그러나 나는 나가 무언가 중대하게 무언가를 할지도 모른다 짐작한다 그래서 나는 설명을 찾아 내지 않았다. 클라이언트 단순히 난에HTML5 Server 이벤트 및 Java Servlet을 사용할 때 net :: ERR_INCOMPLETE_CHUNKED_ENCODING을 방지하는 방법은 무엇입니까?
private Executor executor = Executors.newSingleThreadExecutor();
public void doGet(final HttpServletRequest request, final HttpServletResponse response)
{
final AsyncContext asynCtx = request.startAsync(request, response);
response.setHeader("Cache-Control", "no-cache");
response.setContentType("text/event-stream");
response.setCharacterEncoding("utf-8");
executor.execute(() -> {
boolean run = true;
try
{
while (run)
{
final ServletResponse resp = asynCtx.getResponse();
run = resp != null;
if (resp != null)
{
System.out.println("pushing a server event.");
final PrintWriter writer = asynCtx.getResponse().getWriter();
writer.println("data: {time: " + System.currentTimeMillis() + "}\n");
writer.flush();
}
else
{
System.out.println("stopping beeper, no response object available anymore.");
break; // do not run anymore, we got no response
}
Thread.sleep(2000);
}
}
catch (final Exception e)
{
e.printStackTrace();
}
});
}
: 서버 측에
내가 더미 이벤트 작성자 작업을 요청을 받아 생성하는 간단한 서블릿을$(document).ready(function()
{
var source = new EventSource("/events");
source.onmessage = function (event)
{
console.log("received event: " + JSON.stringify(event));
document.getElementById("eventContainer").innerHTML += event.data + "<br/>";
};
console.log("start to receive events...")
});
내가 HTML 파일을로드 할 때 잘 작동하고 이벤트가 수신되어 콘솔에 기록됩니다. 그러나 초 30 후 나는 오류 메시지 :
[HttpOfLocalhost]/이벤트 순 GET :: ERR_INCOMPLETE_CHUNKED_ENCODING
이유는 무엇입니까?
요청이 죽게되고 즉시 새로 시작되므로 응용 프로그램이 죽지 않지만 콘솔의 오류 메시지는 좋지 않습니다. 내 개발자 콘솔의
스크린 샷 :
요청/resposne 세부 사항 :
:
타이밍, 이것은 항상 30 초 후에 발생하는 것을 보여줍니다
감사!
말해주십시오. 이 오류가 있지만 Asynk을 사용하지 않습니다. 나는 페이지에 가고 나는이 오류가있다. – Tsyklop