私はCプログラムを呼び出すPHPに裏打ちされたREST APIを持っています。入力に応じて、CプログラムはJSONデータを返し、PHPは出力を読み込み、それを直接クライアントに返します。PHPとCデーモン間の最も効率的なプロセス間コール
コードは、本質的に:APIの各呼び出しについて
$command = $binary . " " . $parameters;
$output = shell_exec($command);
echo $output;
、PHPは、プログラムを起動し、いくつかの処理を行い、そして終了します。
Cプログラムをデーモンとして実行し、このデーモンにPHPバックエンド呼び出しを持たせることで、これをより効率的にしたいと考えています。
また、私はPythonのWebフレームワークに移行している可能性があります。そのため、クライアント側からクロスプラットフォームのものが必要です。
私は、デーモンをどこに置いても構いません(近い将来、同じWebサーバー上に置くことができますが、私はそれを最終的に外すことができます)。しかし、ソケットは十分に効率的ですか、それとももっと良い方法と思われるものがありますか?
私は最近Gearmanを使用していますが、これは問題ありません。主にキューですが、何かが完了するまでPHPで待機したい場合は、ブロッキングワーカーを開始することもできます。私は労働者がほとんどの言語で書かれていると信じています - 私はPHPをもう一度使っていますが、Cは問題ないと思うべきです。 – halfer
クロスプラットフォーム、クロス言語、分散、高速、素敵:http://www.zeromq.org/intro:read-the-manual – hakre
可能な複製http://stackoverflow.com/questions/4789720/communicate-c- program-and-php/ –