質問

これは少し複雑ですが、ここに行きます。

私は小さなJSは、それはいくつかのバックエンド処理のものに更新されるウィジェットがあるのRailsアプリを持っています。処理された後、一度完成します( Kthxbye を経由)のRedisでジョブまでのRailsアプリのキューは、オフ発射しますRedisのメッセージを公開します。このチャネルは、通知を処理し、Webフロントエンドを更新する責任があるのNode.jsサーバーによって監視されています。これは、すべてのGoogle Chromeの世界どこのWebSocketの仕事で罰金に動作します。

しかし、FirefoxとIEの両方が、彼らは(まだ)WebSocketをサポートしていませんので、他のソリューションをデフォルトにする必要があります。

現在は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"

その、接続して、すぐにそれが投票しようとすると、それは「違法輸送」の問題が原因で切断されているかのように、それはほとんど表示されますので。それはから来ている誰でも知っていますか?

他のいくつかの手がかりは、フラッシュコネクタが正しくロードするようだが、私はそのが実行されているか、それはまだXHR-ポーリングにフォールバックとして何とかロードに失敗していないと仮定します。 IEから、私は以下の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
役に立ちましたか?

解決

私には、

サウンドあなたはまだJSONPポーリングをサポートしていませんSocket.IOサーバの古いバージョンを持っているよう。そして、とにかく交通機関がATMとにかく非常にうまく機能していないことを私の経験では、新しいクライアント側のバージョンは...ので、それを気にしないでください。 IEでは、flashsocketは動作するはずですし、あなたのウェブサイトより別のドメインにS.IOサーバーを実行しているOFCない限り、XHRポーリングは、も動作するはずです。あなたが他のポートを使用している場合は、XHRポーリングは、オペラでは動作しませんが、他のブラウザで動作するはずです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top