В настоящее время я использую библиотеку ReactPHP Child-Process (которая использует proc_open ()) для получения данных из приложения Go в потоковом формате. Однако, когда я сбрасываю весь ввод с stdout и stderr, я ничего не получаю, хотя, когда я тестирую его в bash, я получаю вывод.
Вот скрипт Go: https://github.com/bwmarrin/dca/blob/master/main.go
Скрипт Go использует goroutines, так что может быть проблема? (Не уверен, я не разработчик Go, и я не сделал программу.)
Я работаю на Mac OS X 10.11.2 El Capitan с PHP 7.0.3 CLI.
PHP-код:
$loop = Factory::create();
$process = new Process("dca -i /Users/david/Music/Zombies.mp3");
$process->start($loop);
$process->stdout->on('data', function ($data) {
var_dump($data);
});
$process->stderr->on('data', function ($data) {
dump($data);
});
$loop->run();
React Child-Process можно найти здесь: https://github.com/reactphp/child-process
Задача ещё не решена.
Других решений пока нет …