2012-01-09 13 views
0

iOS Safari(iOS 5.0.1)でウェブソケットを使用することについて、非常に面倒なことがありました。非常に近い間隔で2つのメッセージを送信する場合(例えば30〜40msと考えると、マウスのボタンでメッセージをマウスアップで送信する)、2つのメッセージはサーバー上で200〜300ms間隔で届きます。 これは、iOS上のWebSocketを使用すると、例えばリモコンを作るのに苦労します...iOS Safari WebSockets:短い間隔でメッセージを送信するときに巨大な遅延が発生する

私は答えを知っていますが、それはもっとうまくいっていますか? SafariのWebsocket実装のバグだと思われますが、WiFi実装から来ている可能性もあります(私はほとんどそう思っていません...)?

+0

私は古いiPhone 3Gで4.Xでこれを見たことはありません。 AppleがWebSocketの実装を邪魔することに決めたなら、それは本当に残念だ。 – kanaka

答えて

2

私はちょっとした回避策を見つけました。Safari MobileのWebソケット実装は、私がすでに知っていたものよりも遥かに動作します。

私の理論を検証するためにいくつかのpingテストをしているうちに、私はもはや問題がないことに気付きました。その後、元のコードで再度テストしたところ、同じ問題が再び発生しました。

その後、私のコードでは、pingテストと比較して、変更されたことが分かりました。サーバーはクライアントに何も送信しません。だから、私のサーバがiPhoneからメッセージを受け取ると、彼はそれにメッセージを返します。こうすると、待ち時間がなくなります。それは本当に変だし、その問題を解決するためにおそらく何かがあるのですが、その間にこれは...

+0

これは、nagle'sが無効になっていないことを示しています。 iOSのブラウザでそれを無効にする方法を調べるときにこの記事を見つけました(同じことがクロムで起こっています)。何らかの理由で私はそれをすることができません。 – Lof

関連する問題