3

WebSocketsに関していくつか質問があります。

最新のFirefox4.0ナイトリーはWebSocketsをサポートしています。Webkit(Chrome 4 + Safari 4/5)も同様です。Internet Explorer 9は、Microsoftによると、ある時点で(安定版リリースの前に)、WebSocketsを搭載することになっています。

とにかく、私の質問は次のとおりです。

  • Webサイトを管理するためのJavaScript管理インターフェースを構築しています。ブラウザの互換性を気にする必要がないと言った場合、XMLHttpRequestの代わりにWebソケットをクライアント/サーバー通信に使用する必要がありますか?

  • Web Socketsは、XMLHttpRequestの通常の状況と比較して、保存、削除、および更新の呼び出しを高速化しますか?リクエストはもっと迅速になりますか?

  • navigator.onlineHTML5とを知っていますwindow.addEventListener('offline', ...)が、Web Sockets(接続が失われた場合)を使用すると、接続の問題をより正確かつ迅速に検出できますか?つまり、インターネット接続をオフにしたり、ファイアウォールでブロックしたりしても、Firefoxはそれが正しいと言っているようにnavigator.online見えます。Web Socketsを使用すると、サーバーへの接続が即座に失われるようです。したがって、接続の問題をより正確に検出できますか?

  • 純粋なPHPでWebSocketsサーバー側をサポートして、コードを他のWebサーバーと移植できるようにすることはできますか(Apacheモジュールをインストールしたり他のカスタマイズを行ったりする必要はありません)HTTPDなどにあらゆる種類のモジュールをインストールするように依頼することなく、ソフトウェアをいくつかの場所に配布したいと思います。

できるだけ多くの質問にお答えいただければ幸いです。私は答えに本当に興味があります。

4

1 に答える 1

5

Webサイトを管理するためのJavaScript管理インターフェースを構築しています。ブラウザの互換性を気にする必要がないと言った場合、XMLHttpRequestの代わりにWebソケットをクライアント/サーバー通信に使用する必要がありますか?

あなたはそれのためだけにWebSocketを使いたいように思えます。WebSocketを使用する主な理由は、サーバーからクライアントにデータをプッシュする場合です。アプリケーションがこれを必要としない場合は、おそらくWebSocketを使用しないでください。

Web Socketsは、XMLHttpRequestの通常の状況と比較して、保存、削除、および更新の呼び出しを高速化しますか?リクエストはもっと迅速になりますか?

ヘッダーがないため、両端(クライアントとサーバー)で時間を節約できる可能性があります。しかし、ゲインはおそらくかなり小さいです。

Web Sockets(接続が失われた場合)を使用すると、接続の問題をより正確かつ迅速に検出できますか?

はい、WebSocketが閉じるとすぐにイベントが発生します。代替案は、長期ポーリングまたは定期的なXHRです。または、イベントクライアント側ストレージ。

純粋なPHPでWebSocketsサーバー側をサポートできるので、コードは他のWebサーバーと移植可能です

まず、これを一読することをお勧めします。WebSocketは同期的にはうまく機能しません。PHPとapacheは、非同期的にはうまく機能しません。いくつかの実装あり ますが、それらの多くは時代遅れです。私は個人的に、 rubypythonjavaサーバーサイドjavascriptなどの他の言語を使用します。言語が非同期モデルをより適切にサポートし、WebSocketの実装がより洗練されているという理由だけで。

WebSocketプロトコルは現在まだドラフトであり、変更される可能性があります。数週間前と同じように。したがって、コードが非常にうまく機能しない可能性があります。

私のアドバイスは次のとおりです。それだけのためにWebSocketを使用しないでください。リアルタイムのイベント駆動型アプリケーションを使用している場合は、おそらくそれが正しい選択です。イベント駆動型アプリケーションの観点からも、WebSocketが何のためにあり、サーバー側で何が必要かを理解してください。制作には使用しないでください。壊れやすいので。

于 2010-06-24T14:55:13.050 に答える