当试图创建一个运行外部程序(例如C程序或Python程序)的工具(使用nodejs、socket.io)时,该程序在遇到用户输入时停止响应(不过它会向浏览器发送请求输入的行)。
服务器上:
var chunk = '';
python.stdout.on('data', function(data){
python.stdout.pipe(python.stdin);
chunk += data;
console.log(chunk);
socket.emit('newdata', chunk);
} );
客户端:
socket.on('newdata', function(d){
var output = document.getElementById('output');
output.innerHTML = d;
})
一切都很好。事实上,唯一的问题是您启动的程序需要用户输入,而您的node.js代码没有提供。
Tbh我不知道你是否可以在它要求输入时给出输入……但你不能在程序开始时传递参数来避免这种用户输入吗?这就是我在使用Java/JEEE 的同一系统上解决它的方法