ruby on rails - Falta el encabezado de Websocket
ruby-on-rails sockets (1)
Estoy usando la gema ''faye'' con Rails 3.2.13. En desarrollo, estoy ejecutando Faye en localhost: 9292 y mi aplicación en localhost: 3000. Puedo activar ventanas emergentes con una solicitud de curvatura desde la línea de comandos, pero no puedo establecer una conexión desde mi aplicación. El error que estoy recibiendo en mi consola es:
La conexión de WebSocket a ''ws: // localhost: 9292 / faye'' falló: Error durante el reconocimiento de WebSocket: Falta el encabezado ''Actualizar''
Estoy tratando de definir un encabezado para faye en mi archivo application.js:
$(function() {
var faye = new Faye.Client("http://localhost:9292/faye");
faye.setHeader("Access-Control-Allow-Origin", "http://localhost:3000");
faye.subscribe(''/messages'', function (data) {
alert(data);
});
});
¿Es esta la manera correcta de agregar un encabezado?
Encontré una discusión de un problema similar aquí: https://github.com/faye/faye/issues/222 En este caso, el error parecía estar relacionado con la configuración de ssl que no se estaba cargando. Revisé el directorio lib de mi gema de rack y encontré
def ssl?
scheme == ''https''
end
Esto parece bien. ¿Cómo puedo saber si las configuraciones no se están cargando correctamente?
Cualquier pista sobre dónde buscar a continuación sería muy apreciada.
Tuve el mismo problema al seguir el seguimiento de Ryan Bates: http://railscasts.com/episodes/260-messaging-with-faye
El servidor de socket web Faye requiere un adaptador para ejecutarse en el servidor web Thin y enviar el encabezado de actualización.
Agregue esta línea a su archivo Faye rackup ( .ru
):
Faye::WebSocket.load_adapter(''thin'')
Encontré esta solución aquí: https://github.com/ryanb/private_pub/issues/39#issuecomment-4225647