这是我的服务器代码中的一个js函数,它有一个从python脚本传输数据的子进程:
var dataString = '';
sampleFunc = function(){
var spawn = require('child_process').spawn,
py = spawn('python', ['F:/sample.py']),
data = [1,2,3,4,5,6,7,8,9];
py.stdout.on('data', function(data){
console.log("before data write");
dataString += data.toString();
});
py.stdout.on('end', function(){
console.log("successful");
dataStr = dataString;
console.log(dataString);
});
py.stdin.write(JSON.stringify(data));
console.log("inside stdin");
py.stdin.end();
};
然后我使用socket.io将此数据发送到客户端。但是datadtr在stdout之外总是空的。
io.on('connection', function(socket){
sampleFunc();
console.log(dataStr);
console.log('a user connected');
});
我只需要将数据放入流中:
py.stdout.on('data', function(data){
console.log("before data write");
dataString += data.toString();
});
并且能够在套接字代码中访问它。任何帮助解决这个问题都将非常感激......
答案 0 :(得分:0)
你只需要从套接字发出数据......?
py.stdout.on('data', function(data){
console.log("before data write");
dataString += data.toString();
io.emit(dataString);
});