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