У меня есть REST API, поддерживаемый PHP, который вызывает программу C. В зависимости от входных данных программа C возвращает данные JSON, а PHP считывает выходные данные и напрямую отправляет их обратно клиенту.
Код по существу:
$command = $binary . " " . $parameters;
$output = shell_exec($command);
echo $output;
При каждом вызове API PHP запускает программу, выполняет некоторую обработку и завершает работу.
Я хотел бы сделать это более эффективным, запустив программу C как демон, а затем вызывая PHP-сервер в этот демон.
Кроме того, я мог бы перейти на веб-фреймворк Python, поэтому мне нужно что-то кроссплатформенное со стороны клиента.
Моя внутренняя реакция состоит в том, чтобы просто сделать это через сокеты, так как тогда я могу разместить демон где угодно (в обозримом будущем он будет расположен на том же веб-сервере, но в конечном итоге я могу его убрать). Но достаточно ли эффективны сокеты, или есть что-то еще, что считается лучшей практикой?