リアルタイムのデータ更新と表示(株式市場のようなもの)を提供する広大なWebアプリケーションを構築することを計画しています。効率的なサーバーとクライアントの双方向通信が必要です。調査後、html5WebSocketは必須のようです。ただし、互換性とフォールバック、およびサーバーサポートに関していくつかの問題があります。PHPとapacheの統合におけるシンプルで安定したソリューションが必要です。phpwebsocketsとpywebsocketsを使用していくつかのテストを行いましたが、それほど安定していないようです。より安定したテスト済みのソリューションとして何を提案しますか?おそらくkaazingのようですが、phpで?前もって感謝します。
5 に答える
使用したいのはSocket.IOです。これは、すべてのクロスブラウザーの問題を処理し、古いブラウザーにシームレスなフォールバックを提供します。Socket.IOはNode.jsで使用するように作成されましたが、現在はさまざまなサーバー側言語で使用できます。
ただし、PHPでWebSocketを使用することはお勧めしません。PHPは長時間実行される双方向通信用に設計されておらず、Apacheプロセス/スレッド全体が新しい接続ごとにロックアップするためです。
サーバー側でNode.jsのような言語を使用することを強くお勧めします。この言語は、何千もの長時間実行されている接続を問題なく簡単に処理できます。
COMETを試しましたか?
Web上にはCOMET+PHPアプリのサンプルがたくさんあります。
http://www.zeitoun.net/articles/comet_and_php/start
http://ajaxian.com/archives/comet-with-php
http://www.phpclasses.org/blog/post/58-Responsive-AJAX-applications-with-COMET.html
2つの理由によるNodejs:
1:クライアントとサーバーの両方で同じ言語を使用できるため、コードをより多く再利用できます。
2:組み込みのイベントループにより、javascriptは、「少しの作業を行ってから20秒間スリープする」状況に最適です。
ただし、JavaScriptをサーバーに取り込むには、JavaScriptを愛する必要があります。
私はおそらくNode.jsを使うでしょう。私はjavascriptが大好きですが、Node.jsのクールエイドに酔っていません。(公正警告…)
しかし、Node.jsではSocket.ioを使用できます。これを使用して、「すべての」システムでリアルタイム通信をシームレスに機能させることができます。PHPとNode.jsの間の通信は、ソケット、データベース、またはその他の非常識なものを介して処理できます。
WebSocketは十分にサポートされておらず、安定したphpの実装もありません。
ロングポーリング/COMETの使用を検討しましたか?すべてのブラウザで動作します。