我有一个由PHP支持的REST API,它调用了一个C程序。 根据输入,C 程序返回 JSON 数据,PHP 读取输出并直接将其发送回客户端。
代码本质上是:
$command = $binary . " " . $parameters;
$output = shell_exec($command);
echo $output;
对于 API 的每次调用,PHP 都会启动程序,执行一些处理并结束。
我想通过使 C 程序作为守护程序运行来提高效率,然后让 PHP 后端调用这个守护进程。
另外,我可能正在迁移到Python Web框架,所以我想要从客户端跨平台的东西。
我的直觉反应是简单地通过套接字进行操作,因为那时我可以将守护程序放在任何地方(在可预见的未来,它将位于同一个 Web 服务器上,但我最终可以将其移开)。 但是套接字是否足够有效,或者是否有其他被认为是更好的做法?
如果不更多地了解您的 C 程序,就很难回答这个问题。
绝对值得检查的一件事是创建PHP扩展。
它不是跨平台的,但你可以编写类似于 Python 或 Ruby 的扩展,扩展部分实际上只是围绕你的 C 程序的一个小骨架,而且编写起来真的很容易。