5

SproutCore と PHP をバックエンドとして使用して、かなり大きな Web アプリケーションをビルドしています。私が今望んでいるのは、WebSocket を使用してクライアント アプリケーションをリアルタイムで更新することです。私の知る限り、PHP は永続的な接続を処理するのが本当に苦手です。そのため、Go を使用して websocket 接続を処理し、リクエストを受信するたびに PHP スクリプトを呼び出すことができると考えていました (このパッケージはそれを可能にしているようです)。

だから私の最初の質問は、皆さんはそれが良いアイデアだと思いますか (実行可能なアイデアですが、そうしている人を見つけることができませんでした)、それとも PHP を使い続ける必要がありますか?

Go を使用して Websocket 接続を処理する場合、PHP から徐々に離れて Go のみを使用できるようになることも考えていました (PHP よりもはるかに高速であるため)。それを行うには、PHP から Go パッケージを呼び出せるようにする必要があります。これは PHPexec関数で実行できますか? より良い方法はありますか?繰り返しますが、それは良い考えですか?

4

2 に答える 2

9

Go は WebSocket サーバーに自然に適合します。私は Go で websocket サーバーを構築しましたが、すべてがうまくいったことに非常に満足しています。Go Websocket サーバーで月に 30 万ユーザーを処理する 1 つのサービスがあり、Amazon AWS マイクロ インスタンスの 1% の CPU をほとんど使用していません。これ以上ないほど幸せです。

Websocket は、サーバー リソースを最大化するために、Go や Node.js などのイベント ドリブン フレームワークを本当に必要とします。PHP のようなフォークされた Web プロセスは、イベント ドリブン フレームワークよりもはるかに多くのリソースを消費します。

ある時点で PHP から Go を呼び出す必要がある場合は、API 呼び出しを使用することをお勧めします。でもうまくexecいくでしょう。

于 2013-04-16T06:37:32.553 に答える
-1

それは古い質問ですが、この件に関して私の 2 セント...

あなたが求めていることを正確に実行する非常に優れたphpライブラリ-websocketsがあります。ラチェットといいます。私はnode.jsを使用しません(過大宣伝されています)、またはphpがまったく同じことを行うことができ、それが私が最も快適な言語である場合に行きます。ほとんどの場合、websocket よりもパフォーマンスが少し向上しても、スタックを切り替える価値はありません。

Ratchet の使用を計画している場合に役立つその他のリンク:

于 2014-02-13T17:41:24.540 に答える