所以,我有一个如下的路由函数:
var http = require('http').createServer(start);
function start(req, res){
//routing stuff
}
在此之下,我有一个 socket.io 事件监听器:
io.sockets.on('connection', function(socket){
socket.on('event', function(data){
//perform an http response
}
}
当调用套接字事件“事件”时,我想执行如下的 http 响应:
res.writeHead(200, {'Content-disposition': 'attachment; filename=file.zip'})
res.writeHead(200, { 'Content-Type': 'application/zip' });
var filestream = fs.createReadStream('file.zip');
filestream.on('data', function(chunk) {
res.write(chunk);
});
filestream.on('end', function() {
res.end();
});
最后一部分,当在路由函数中执行时工作得很好,但不幸的是,当它从套接字事件调用时,它当然不起作用,因为它没有引用“req”或“res”对象。我该怎么做呢?谢谢。