지난 주 WebSocket을 살펴보고 Java Servlet API로 서버 측을 구현하는 방법에 대해 몇 가지 생각을했습니다.서블릿 컨테이너가 제공하는 웹 소켓
: 나는 HttpServletResponse를 구현에 컨테이너 특정 수정 컨테이너를 패치하거나 적어도하지 않고 해결하는 것은 불가능 보인다 톰캣과 몇 가지 검사 중에 다음과 같은 문제에 너무 많은 시간을 할애하지만, 실행하지 않았다 WebSocket 스펙은 101 HTTP 응답에 정의 된 메시지를 요구합니다. HttpServletResponse.setStatus (int code, String message)는 사용 가능한 대체를 언급하지 않고 더 이상 사용되지 않습니다. 기본 Tomcat 구성을 변경 한 후, Tomcat이 내 메시지 문자열을 사용하게 만들었지 만이 메소드가 사용되지 않으므로 다른 서블릿 컨테이너에서 작동하는지 확신 할 수 없습니다.
WebSocket 사양에는 연결 업그레이드 요청에 대한 HTTP 응답에서 처음 몇 개의 헤더가 지정되어야합니다. 서블릿 API는 응답 헤더의 순서를 지정하는 메소드를 제공하지 않으며 Tomcat은 자체 헤더를 응답에 추가합니다. 서블릿 구현으로 추가되는 헤더 앞에 몇 개를 추가합니다.
헤더를 커밋 할 때 응답의 내용 길이를 알 수 없으므로 Tomcat은 자동으로 응답의 청크 분할 전송 인코딩으로 전환합니다.이 인코딩은 WebSocket 사양과 호환되지 않습니다.
확실한 정보가 없거나 서블릿 기반 웹 응용 프로그램에서 WebSocket 서버 끝점을 통합 할 수없는 이유는 무엇입니까? http://www.jWebSocket.org
거의 같은 문제가 발생했습니다. Java EE 스펙이 추가되었을 때 "WebSocket Servlet"을 어떻게 보이고 싶은지를 보여주기 위해 Tomcat을 확장하려고했습니다. Tomcat을 해킹 한 방법을 보려면 http://java.dzone.com/articles/tomcat-websockets-html5 –