neino-3と申します。

IE6でSocket.IOを使って通信方式をhtmlfileにした場合に
期待した動きにならず修正方法を検討しております。

自分の環境だけの問題ではなく、皆様の環境でも
発生する事象なのか念のため確認させて頂きたくメールさせて頂きました。
# socket.ioのMLにも投げてみたのですが、私の英語がイマイチなのかもしれない&IE6で
# 使っている人がいないのかリアクションがなかったため、こちらに投稿させて頂いた次第です。

問題の検証コードは以下に置いています。
https://github.com/neino3/socket.io-client-htmlfile-ie6-problem

検証コードは、
・ページに配置したボタンが押されたらサーバに対してメッセージをsendする
・サーバは、クライアントからメッセージを受け取ったらコンソールに出力する
という、単純なsocket.ioのプログラムです。

これをIE6で動かした際、transportはhtmlfileで動きます。
1回目のsendは成功し、サーバ側コンソールにメッセージが表示されます。
しかし、2回目以降はボタンを押してsendが呼ばれてもサーバへはメッセージが
送信されませんでした。
IE6環境をお持ちの方がいらっしゃいましたら、上記検証コードで同様の
現象になるか確認してみて頂けないでしょうか?
# もしご確認いただける場合はsocket.io-client 0.9.10でお願いします。
# 0.9.10 以前のバージョンだと別のバグが原因でIE6でhtmlfileが動きません。

私の環境で調査したところ、socket.io-client のxhr.jsの以下の部分で、this.readyStateがIE6の場合
undefinedで入ってきました。このため期待した分岐に入っていないのが原因っぽい気がしています。
https://github.com/LearnBoost/socket.io-client/blob/master/lib/transports/xhr.js#L101

よろしくお願い致します。

-- 



メールによる返信