Pregunta

Esto es un poco complicado, pero aquí va.

Tengo una aplicación Rails que tiene un pequeño flash JS que se actualiza en algunas cosas procesamiento de back-end. Los rieles de aplicaciones colas de hasta un trabajo en Redis (a través de KTHXBYE ), que se procesa y luego una vez completados, dispara Redis un mensaje de Publicación. Este canal está siendo observado por un servidor Node.JS que es responsable del manejo de las notificaciones y la actualización de la interfaz web. Todo esto funciona bien en un mundo Google Chrome, donde trabajan WebSockets.

Sin embargo, tanto Firefox e IE tienen por defecto a otras soluciones ya que no son compatibles con WebSockets (todavía).

En la actualidad parece que tanto el defecto para el transporte xhr-electoral. A partir de los registros de Node.js. Eso es todo bien y bueno. Sin embargo, en IE, parece que hay un error en el método de transporte / sondeo. De los Node.js registros:

29 Sep 15:30:02 - Initializing client with transport "xhr-polling"
29 Sep 15:30:02 - Client 9219092682469636 connected
29 Sep 15:30:05 - Client 8440734834875911 disconnected
29 Sep 15:30:05 - Client 6149627515114844 disconnected
29 Sep 15:30:07 - Illegal transport "jsonp-polling"
29 Sep 15:30:07 - Illegal transport "jsonp-polling"

Por lo tanto, casi parece como si su conexión y tan pronto como se intenta sondeo, que se desconecta debido a un problema de "transporte ilegal". conozco a nadie de dónde viene eso?

Algunas otras pistas, el conector de flash parece cargar correctamente, pero supongo que no es correr o deja de cargar alguna manera, ya que todavía cae de nuevo a xhr-electoral. Desde IE, puedo ver los siguientes 3 peticiones se hacen cada ciclo de sondeo:

GET /socket.io/xhr-polling//1285789236601 HTTP/1.1
Accept: */*
Origin: http://plukevdh-desktop:3000
Accept-Language: en-us
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; OfficeLiveConnector.1.4; OfficeLivePatch.1.3)
Host: itwebpriv1:8081
Connection: Keep-Alive
Cache-Control: no-cache

HTTP/1.1 200 OK
Content-Type: text/plain
Content-Length: 25
Access-Control-Allow-Origin: undefined
Connection: keep-alive

---

GET /socket.io/xhr-polling//1285789236616 HTTP/1.1
Accept: */*
Origin: http://plukevdh-desktop:3000
Accept-Language: en-us
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; OfficeLiveConnector.1.4; OfficeLivePatch.1.3)
Host: itwebpriv1:8081
Connection: Keep-Alive
Cache-Control: no-cache

HTTP/1.1 200 OK
Content-Type: text/plain
Content-Length: 24
Access-Control-Allow-Origin: undefined
Connection: keep-alive

---

GET /socket.io/jsonp-polling//1285789241616/0 HTTP/1.1
Accept: */*
Referer: http://plukevdh-desktop:3000/jobs/905390
Accept-Language: en-us
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; OfficeLiveConnector.1.4; OfficeLivePatch.1.3)
Accept-Encoding: gzip, deflate
Host: itwebpriv1:8081
Connection: Keep-Alive
¿Fue útil?

Solución

Me parece que tiene una versión anterior del servidor de Socket.IO que todavía no tiene jsonp-sondeo de apoyo. Y una versión más reciente del lado del cliente ... De todos modos, en mi experiencia que el transporte ATM no funciona muy bien de todos modos por lo que no se moleste con él. En IE, flashsocket debe trabajar y xhr-de votación debería funcionar también, a menos que OFC está ejecutando el servidor S.IO en otro dominio de su sitio web. Si está utilizando otro puerto continuación xhr-de votación no va a funcionar en Opera, pero debería funcionar en otros navegadores.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top