Вопрос

Это немного сложно, но вот идет.

У меня есть приложение Rails, которое имеет небольшой виджет JS, который обновляется на некоторых материалах обработки Backend. Опрашивает приложение Rails на работу в Redis (через Kthxbye.) который обрабатывается, а затем однажды завершится, уволяет сообщение redis publish. Этот канал смотрит на сервере Node.js, который отвечает за обработку уведомлений и обновление веб-интерфейса. Это все работает нормально в мире Google Chrome, где работают WebSockets.

Однако как Firefox, так и IE должны по умолчанию для других решений, потому что они не поддерживают WebSockets (пока).

В настоящее время кажется, что как по умолчанию для опроса XHR-опроса. Из журналов Node.js. Это все хорошо и хорошо. Однако на IE, кажется, что существует ошибка в методе транспортировки / опроса. Из журналов 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"

Таким образом, он почти появляется как будто его подключение и как только он пытается опросить, он отключен из-за «нелегального транспортного» вопроса. Кто-нибудь знает, откуда это происходит?

Несколько других подсказок, разъем Flash, кажется, загружен правильно, но я предполагаю, что его не работает или не загружается как-то, так как он все еще возвращается к опросу XHR. Из то есть я могу видеть следующие 3 запроса в каждом цикле опроса:

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
Это было полезно?

Решение

Похоже, у вас есть более старая версия Socket.io Server, которая еще не имеет поддержки опроса JSONP. И более новая версия ChrientSide ... Во всяком случае, в моем опыте, что транспортное банкомат не работает очень хорошо, так что не беспокоиться с ним. В IE, Flashsocket должен работать, и XHR-опрос также должен работать, если OFC не запустите сервер S.IO на другом домене, чем ваш сайт. Если вы используете другой порт, то XHR-опрос не будет работать в Opera, но должен работать в других браузерах.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top