Así que he estado tratando de hacer que esto funcione 2 días y estoy atascado. Esta es la primera vez que configuro un servidor para raíles que usa NodeJS + Socket IO. Soy un novato con NGINX y Unicornio. Básicamente, la parte NodeJS + SocketIO de mi aplicación enviará mensajes a los usuarios que están conectados a mi aplicación. Este es mi nginx.confconfiguración NGINX para trabajar con Socket.IO
server{
listen 80 default;
root /home/deployer/saigon/public;
try_files $uri/index.html $uri @unicorn;
location /sockets {
proxy_pass http://localhost:3210;
}
location @unicorn {
proxy_pass http://localhost:3000;
}
}
Y en mi production.rb, que han configurado la URL del cual el usuario tendrá que enviar el mensaje de
SOCKET_IO_URL ='http://localhost:8080/sockets
Por qué 8080 a/recepción de mensajes? Yo uso Vagrant para reenviar 8080 -> 80
Intenté acceder a http://localhost:8080/sockets y pude obtener el mensaje de bienvenida de socket. Miré el registro de mi servidor NodeJS y estaba recibiendo mensajes bien. Sin embargo, cuando se trata de transmitir ... simplemente no lo hace. ¿Alguna vez alguien ha conseguido que este tipo de aplicación funcione con la configuración que estoy tratando de hacer? ¿Debería ir con Apache + Unicornio?
'
por lo que básicamente socket/socket.io necesita permanecer en la carpeta raíz, entonces .... lo que significa que tengo que saber qué solicitud va a raíles y cuál va a socket io cuando llegue a raíz? = ___ = argh – denniss
Por ahora sí. Si es posible, puede usar una ruta de subdominio. http://socket.domain.com/. Esto no funcionó para mí porque no quería gastar más dinero en un certificado SSL para un subdominio. –
@denniss He actualizado mi respuesta con una solución. Aún profundizando en él para descubrir si este es el diseño previsto o un error que debe solucionarse. –