我有一个node.js服务器,它几乎运行一个子进程,并通过套接字将进程中的stdout发送给连接的客户端。它工作得很好,但是当客户端断开连接时,由于变量不在作用域内,我无法关闭childprocess。这是我的示例代码
var sys = require('sys'),
ws = require('./ws');
var server = ws.createServer(function (socket) {
socket.addListener("connect", function (resource) {
var counter = 0;
sys.puts("client connected from " + resource);
var spawn = require('child_process').spawn, tail = spawn('app');
sys.puts("Spawned child pid: "+ tail.pid);
tail.stdout.addListener('data', function(data) {
socket.write(JSON.stringify(data));
});
})
socket.addListener("close", function () {
//
// need to access the tail var here!!!
//
sys.puts("quit");
})
})
server.listen(3656)
在我的close监听器中,我需要访问tail变量,以便可以终止进程。