2017-01-17 6 views
0

В настоящее время я использую Jetty 8, и я хотел бы написать несколько событий (текст) в ответе сервлета. Например:Поддерживает ли Jetty HTTP Chunked Responses/Transfer-Encoding?

начала записи запись event2 запись event3 написать полный

Все разграничены \ N

Пролет этот ответ не будет, вероятно, будут не больше, чем 20 секунд, но клиент должен получить каждое событие (строка), как это бывает. Я не мог найти документацию по этому вопросу, но я хотел проверить это с сообществом.

Если Jetty не делает этого, существуют ли какие-либо другие сервлет-модули, которые могут быть встроены?

BTW, я пробовал следующее, но данные не получены до тех пор, пока сервлет не вернется, а затем он будет получен сразу.

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(); 

Edit: должны использовать \ г \ п для линии терминатора

ответ

1

Он работает, если каждая строка заканчивается \ г \ п

resp.setContentType("text/html"); 
    resp.setHeader("Transfer-Encoding", "chunked"); 
    resp.getWriter().write("closing\r\n"); 
    resp.getWriter().flush(); 

    try { 
     Thread.sleep(5000); 
    } catch (InterruptedException e) { 
     e.printStackTrace(); 
    } 

    resp.getWriter().write("closed\r\n"); 
    resp.getWriter().flush();