Escribí el servidor en python y ahora me gustaría configurar el servidor web apache para admitir websockets. Mi servidor devuelve información cuando un cliente envía consultas a estas direcciones:
def make_app(): return tornado.web.Application([ (r"/playgame", EmptyGame), (r"/playgame/", EmptyGame), (r"/playgame/(.*)", PlayerGameWebsocket) ])¿Cómo configurar el servidor para admitir el tráfico regular de usuarios pero también para habilitar websockets cuando el cliente establece dicha conexión?
Yo uso el servidor apache2.4.
Ok, resultó que la solución es trivial. Si alguien alguna vez buscó una respuesta, simplemente agregue una simple redirección a la aplicación en la configuración del host virtual que escucha en localhost:
ProxyPassMatch "/playgame/(.*)" "ws://127.0.0.1:8888/playgame/$1" ProxyPassReverse "/playgame/(.*)" "ws://127.0.0.1:8888/playgame/$1"Gracias a esta sintaxis, incluso podemos pasar datos adicionales, por ejemplo, "/playgame/123". Nos conectamos desde el cliente sin especificar el puerto:
var adr = "ws://serverip/playgame/" + gameid; var ws = new WebSocket(adr);