2012-06-29 21 views
6

Intento utilizar la implementación de Tomcat WebSockets en la máquina local. Cuando uso solo tomcat, todo funciona bien, pero cuando comienzo a usar el paquete Apache + mod_jk + navegador Tomcat muéstreme 'La conexión a ws: //example.com/test/echoMessage se interrumpió mientras la página se cargaba' después un par de segundos de trabajo. La conexión WebSocket está cerrada después de esto.WebSocket conexión interrumpida cuando Apache HTTPD delante de Tomcat

¿Alguien me puede decir cómo solucionarlo?

que tengo: Apache HTTPD 2.2.18, 1.2.37 mod_jk, Tomcat 7.0.28

Aquí está el código del lado del servidor que utilizo: http://svn.apache.org/viewvc/tomcat/trunk/webapps/examples/WEB-INF/classes/websocket/ y lado del cliente: http://svn.apache.org/viewvc/tomcat/trunk/webapps/examples/websocket/

Navegadores: Firefox 12, Chrome 19

+1

No estoy seguro de si mod_jk admite websockets aún :( –

+0

@Gergely Sí, parece que Apache (o mod_jk) no envía ninguna solicitud de WebSocket a Tomcat .. – Mark

Respuesta

0

Investigaría si Apache mod_proxy puede reenviar el tráfico de forma transparente al nivel TCP. Dado que es probable que sea necesario que WebSocket pase. IOW: ¿es mod_proxy capaz de invertir de manera transparente el tráfico proxy de WebSocket?

¿Pero por qué querrías llevar a Apache a la línea de todos modos? No agrega ningún valor, solo más partes que pueden romperse. Eso es para WebSocket, por supuesto ...

+0

If Si desea ejecutar un servidor web y WebSocket juntos en el mismo puerto, tiene mucho sentido. Y con la configuración correcta, la integración de WebSocket con Apache funciona perfectamente y hay varias opciones, incluida pywebsocket (que está específicamente diseñada para eso). La fácil integración con los servidores web existentes fue un gran objetivo del grupo de trabajo HyBi y la razón por la que el handshake de WebSocket es muy similar a HTTP. – kanaka

+0

@oberstet Tengo un proyecto que está escrito en Java (JSP/Servlets) y se ejecuta en Tomcat con Apache Delante, Apache es para contenido estático (html, imágenes y etc.) y SSL, y Tomcat es para contenido dinámico. Decido agregar un pequeño chat de websocket. Si este chat no funciona con Apache al frente, entonces necesito agregar Tomcat o Jetty nuevos solo para chatear. Esta no es una buena idea – Mark

+0

@oberstet P.S. Y, por supuesto, esta no es la forma correcta de utilizar mi Apache de omisión de Tomcat existente. – Mark

Cuestiones relacionadas