2012-12-04 26 views
5

numaralı düğüme bir Socket.io akışı bağlayın socket.io ile bir ekspres uygulama yarattım. Şimdi düğümde oluşturduğum repl ile bağlanacak bir tarayıcı terminali istiyorum. İşte ben zaten socket.io bağlantısına konsol çıkışlarını bastırıyor neyiDüğme

var io = io.listen(server); 
var sessionSockets = new SessionSockets(io, sessionStore, cookieParser); 

sessionSockets.on('connection', function (err, socket, session) { 
    var stream = createStream(socket); 
    var replInstance = repl.start({ 
    prompt: "> ", 
    input: stream, 
    output: stream 
    }); 
    repls[socket.id] = replInstance; 
}); 

var createStream = function(socket) { 
    var stream = new Stream(); 
    stream.readable = true; 
    stream.resume = function() {}; 

    stream.write = function(data) { 
    socket.emit('stdout', data); 
    }; 

    socket.on('stdin', function(data) { 
    // emit data to repl stream - DOES NOT WORK 
    stream.emit('data', data); 
    }); 

    return stream; 
}; 

ile geldi budur ve önyüzdeki görüntüler. Ne yapmaz, rependeki ön taraftan veri girmektir.

Fikirler?

cevap

0

Sadece kodunuzu çalıştı ve ben repl onu tanımak için yayarlar akışınızda bir satır sonu gerekebilir düşünüyorum:

// emit data to repl stream - DOES NOT WORK 
stream.emit('data', data+'\n');