こんにちは水本です。
小松様、高木様返信ありがとうございます。
androidのfirefoxで問題のnode.jsサーバにアクセスしてみたところ
標準ブラウザ時に起こる勝手にreconnectされるという問題も無く、無事動作しました。
不思議なのは,
firefoxでうまくいった時のログを見てみると接続方式がxhr-pollingだったのです。
そして接続方式が同じなのに挙動が違う(出ているログが違う)ことです。
****firefox*****
info -
socket.io started
debug - client authorized
info - handshake authorized 6913620102108384518
debug - setting request GET /
socket.io/1/xhr-polling/
6913620102108384518?t=1315897926830
debug - setting poll timeout
debug - client authorized for
debug - clearing poll timeout
debug - xhr-polling writing 1::
debug - set close timeout for client 6913620102108384518
{ '0': 'connected' }
debug - パッケト送信
debug - set close timeout for client 939614808494293282
debug - discarding transport
debug - cleared close timeout for client 939614808494293282
debug - setting request GET /
socket.io/1/xhr-polling/
939614808494293282?t=1315898404277 //a
debug - setting poll timeout
debug - discarding transport
debug - cleared close timeout for client 939614808494293282
debug - clearing poll timeout //****
debug - xhr-polling writing 8::
debug - set close timeout for client 939614808494293282
debug - xhr-polling closed due to exceeded duration
//b
以下//a→//bでループ
****************
****標準ブラウザ****
info -
socket.io started
debug - client authorized //a
info - handshake authorized 9772262671806736765
debug - setting request GET /
socket.io/1/xhr-polling/
9772262671806736765?t=1315898666625
debug - setting poll timeout
debug - client authorized for
debug - clearing poll timeout
debug - xhr-polling writing 1::
debug - set close timeout for client 9772262671806736765
{ '0': 'connected' }
debug - setting request GET /
socket.io/1/xhr-polling/
9772262671806736765?t=1315898667188
debug - setting poll timeout
debug - clearing poll timeout
debug - パッケト送信
debug - set close timeout for client 5002989641581778631
debug - discarding transport
debug - cleared close timeout for client 5002989641581778631
debug - setting request GET /
socket.io/1/xhr-polling/
5002989641581778631?t=1315898207453
debug - setting poll timeout
debug - discarding transport
debug - cleared close timeout for client 5002989641581778631
debug - clearing poll timeout //
****
info - transport end
debug - set close timeout for client 5002989641581778631
debug - cleared close timeout for client 5002989641581778631
{ '0': '5002989641581778631::disconnected!!' } //
切断ログ
debug - discarding transport
debug - setting request GET /
socket.io/1/xhr-polling/
5002989641581778631?t=1315898207453
debug - setting poll timeout
debug - clearing poll timeout
debug - xhr-polling writing 7:::1+0
debug - set close timeout for client 5002989641581778631
warn - client not handshaken client should reconnect
info - transport end
debug - cleared close timeout for client 5002989641581778631
debug - discarding transport
debug - discarding transport
debug - xhr-polling received data packet 0::
debug - got disconnection packet //b
以下//a→//bでループ
**********
debug - clearing poll timeout //****
のあとで transport endが起きてwarnが出ているというのが主な違いですが、
この挙動の違いをブラウザの違い、通信方式の違いと言ってしまってよいのでしょうか?
長文、質問ばかりで申し訳ありません。
>
http://mobilehtml5.org/
> モバイルデバイスにおけるhtml5の対応表を見つけたので紹介します。どうやらAndroidのFirefoxならwebsocketに対応しているようですね。
>
> - 高木
>
> 2011/9/11 KOMATSU Kensaku <
kensaku.koma...@gmail.com>:
>
>
>
>
>
>
>
> > 小松です。
> > xhr-pollingで、HTTP(TCP)を再接続するのはPCでもモバイルでも同じなのですが、
> > 経験上 Mobile(3G回線)では、HTTP再接続にコストがかかる(要は、時間がかかる)
> > 傾向があり、普通のネット接続に比べて不自然な動きをします。なので、PCでも
> > 3G回線経由で接続しようとすると、多分怪しい動きになると思います。
> > 逆を言えば、Androidでも、Wi-fiでつなげば xhr-pollingでもそこそこスムーズだと
> > 思います。
> > 何故に、3G回線でやたら再接続コストがあがるのかは不明ですが。。。
> > 2011年9月12日10:48 水本弘貴 <
shuibenhong...@gmail.com>: