2012-12-04 17 views
5

पर कनेक्ट करें मैंने socket.io के साथ एक एक्सप्रेस ऐप बनाया है। अब मैं एक ब्राउज़र टर्मिनल को नोड में बनाई गई प्रतिलिपि से कनेक्ट करना चाहता हूं। यहाँ मैं क्यासॉकेट.ओ स्ट्रीम को नोड प्रतिलिपि स्ट्रीम

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; 
}; 

के साथ आया था क्या यह है पहले से ही socket.io कनेक्शन के लिए कंसोल आउटपुट धक्का है और उन्हें दृश्यपटल में प्रदर्शित करता है। यह प्रतिलिपि में अग्रभाग से डेटा दर्ज नहीं कर रहा है।

विचार?

उत्तर

0

मैं सिर्फ अपने कोड की कोशिश की, और मुझे लगता है कि आप फेंकना repl यह पहचान करने के लिए के लिए अपनी स्ट्रीम पर एक लाइन ब्रेक पड़ सकता है:

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