0

我有一个由 PHP 支持的 REST API,它调用一个 C 程序。根据输入,C 程序返回 JSON 数据,PHP 读取输出并直接将其发送回客户端。

代码本质上是:

$command = $binary . " " . $parameters;
$output = shell_exec($command);
echo $output;

对于 API 的每次调用,PHP 都会启动程序,进行一些处理,然后结束。

我想通过让 C 程序作为守护进程运行来提高效率,然后让 PHP 后端调用这个守护进程。

另外,我可能正在迁移到 Python Web 框架,所以我想要从客户端跨平台的东西。

我的直觉反应是简单地通过套接字进行,从那时起我可以将守护进程放在任何地方(在可预见的将来它会位于同一个 Web 服务器上,但我最终可以将它移走)。但是套接字是否足够高效,或者还有其他被认为是更好的做法吗?

4

1 回答 1

1

如果不了解您的 C 程序的更多信息,很难回答这个问题。

绝对值得检查的一件事是创建 PHP 扩展

它不是跨平台的,但你可以编写类似 Python 或 Ruby 的扩展,而扩展部分实际上只是围绕你的 C 程序的一个小骨架,而且它真的很容易编写。

于 2012-04-17T21:26:54.253 回答