Ceci est un peu compliqué mais voilà.Socket.IO/Node.JS/Rails 3/IE
J'ai une application Rails qui a un petit widget JS qui est mis à jour sur certaines choses de traitement backend. L'application Rails met en file d'attente un travail dans Redis (via Kthxbye) qui est traité puis, une fois terminé, déclenche un message redis publish. Ce canal est surveillé par un serveur Node.JS qui est responsable du traitement des notifications et de la mise à jour de l'interface Web. Tout fonctionne très bien dans un monde Google Chrome où WebSockets fonctionne.
Cependant Firefox et IE doivent tous les deux utiliser d'autres solutions par défaut car ils ne supportent pas (encore) WebSockets.
Actuellement, il semble que le transport par interrogation xhr par défaut. À partir des journaux Node.js C'est très bien. Cependant, sur IE, il semble qu'il y ait une erreur dans la méthode de transport/interrogation. À partir des journaux Node.js:
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"
Il apparaît presque comme si sa connexion et dès qu'il tente de sondage, il se déconnecte en raison d'un problème « transport illégal ». Quelqu'un sait d'où ça vient? Quelques autres indices, le connecteur flash semble se charger correctement, mais je suppose qu'il ne fonctionne pas ou ne parvient pas à charger d'une manière ou d'une autre, car il retombe toujours à xhr-polling. De IE, je peux voir les 3 demandes suivantes sont faites chaque cycle d'interrogation:
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
Toutefois, je n'ai pas pu obtenir l'API FlashSocket à prendre en charge. il est toujours contourné sans explication. il semble même charger le fichier flash, mais alors il échoue à xhr polling avec jsonp ... Pouvez-vous expliquer "Si vous utilisez un autre port, xhr-polling ne fonctionnera pas ..." plz? – Lukas
ressemble à un problème d'autorisations qui échouait à exécuter flashsockets. la dernière version en informe. le risque de courir sur le bord je suppose :) – Lukas