1

ZF2 で大きな PHP アプリケーションを開発していますが、このアプリケーションではリアルタイムの対話が必要なので、websocket を選択しました。PHP、Mysql、Memcached があります。Websocket サーバーが必要です。最良の選択は何でしょうか。私の websocket サーバーの要件:

  • mysql、memcached、そしておそらくギアマンをサポート
  • https 接続のサポート、非常に重要
  • オプションで IE をサポートします (ただし、メリットが少ない場合は重要ではありません)
  • スケーラブル

私の問題は、PHP (レンチ) websocket サーバーまたはベースの Node.js(socket.io) サーバーから選択することです。どちらを選ぶべきですか?

PHP を使用する場合、PHP コードと ZF2 関数を使用できるため、開発は非常に簡単ですが、html5 以外のブラウザーをサポートしていません (ここで ssl をサポートしていますか?)

socket.io を使用する場合、すべてのブラウザー サポートとフォールバックがありますが、ここでは、mysql、memcached などで動作するようにすべての関数を (js で) 書き直す必要があります...

4

2 に答える 2

2

WaterSpout サーバーは、WebSocket またはロングポーリング接続を提供すると主張しています: https://github.com/chrisnetonline/WaterSpout-Server

したがって、これはすべてのブラウザーで機能するソリューションになる可能性があります。

すべてのソリューションはスケーラブルです。質問は本当にです。スケーリングについて考え始めなければならないのはいつですか? 垂直方向にスケーリングして、サーバーに追加のリソースを追加するのはいつですか? 別のサーバーを追加 (水平方向にスケーリング) し、それらのサーバー間の同期接続と状態情報を処理するのはいつですか? 私見では、PHPソリューションを使用してこれをより早く行うことになります。

主に PHP でコードを記述し、物事をシンプルに保ちたい場合は、ホストされたリアルタイム サービスをアプリケーション スタックの一部として使用することをお勧めします。

関連する投稿 (私が書いたもの):

于 2013-09-21T20:08:13.947 に答える
0

Node.js をお勧めします。なぜなら、PHP は長時間メモリ内にとどまらなければならないアプリケーションにとって最適なソリューションではないからです (PHP はメモリ リークします)。

http://software-gunslinger.tumblr.com/post/47131406821/php-is-meant-to-die

自転車を再発明しないように、再利用可能な Node モジュールがたくさんあると確信しています。

もちろん、それが機能する場合は、PHP を利用したデーモンを使用して、時々再起動して、安定性をある程度制御することができます。

于 2013-09-19T08:54:12.773 に答える