Javascript 使用nodejs和socket.io向客户端发送图像

Javascript 使用nodejs和socket.io向客户端发送图像,javascript,node.js,callback,socket.io,Javascript,Node.js,Callback,Socket.io,通过下面的代码,我可以使用socket.io向客户机发送一个图像,但我还希望将大小作为第二个参数发送。我想理解,当我试图将参数大小传递给socket.emit函数时,为什么参数大小总是未定义。socket.emit'firstChunkSent',数据,大小。你能修一下吗 var io = require('../server').io io.sockets.on('connection', function (socket) { socket.on('imageRequest', func

通过下面的代码,我可以使用socket.io向客户机发送一个图像,但我还希望将大小作为第二个参数发送。我想理解,当我试图将参数大小传递给socket.emit函数时,为什么参数大小总是未定义。socket.emit'firstChunkSent',数据,大小。你能修一下吗

var io = require('../server').io

io.sockets.on('connection', function (socket) {

socket.on('imageRequest', function () {  

getTheNewImage(function(data,size){

socket.emit('firstChunkSent', data, size)

  }); 
 }); 
});

function getTheNewImage(callback){

var filename = 'image.gif';

var base64FileSize  = fs.stat(filename,function(err,stats){

if (err) { throw err; }

return stats.size

});

var readable = fs.createReadStream(filename, { encoding: 'base64' });

readable.on('readable', function() {

var getImageData = function(){

  while (null !== (base64ImageData = readable.read())) {

          return base64ImageData
          }
}
callback(getImageData(),base64FileSize)

});

readable.on('end', function() {

console.log('there will be no more data.')

});

readable.on('error', function(err) {

console.log('here is the error: '+err)

readable.end(err);

});
需要使用回调函数吗

function getTheNewImage(callback){
    var filename = 'image.gif';
    var base64FileSize  = fs.stat(filename,function(err,stats){
    if (err) return callback(new Error(err));
    callback(null, stats.size)

});

getTheNewImage(function(data,size)
第一个参数是错误,而不是数据

callbackgetImageData,在readable.on'readable'函数中调用base64FileSize等。。
function getTheNewImage(callback){
    var filename = 'image.gif';
    var base64FileSize  = fs.stat(filename,function(err,stats){
    if (err) return callback(new Error(err));
    callback(null, stats.size)

});

getTheNewImage(function(data,size)