2012-12-04 8 views
5

私はsocket.ioでexpressアプリケーションを作成しました。今私はノードに作成されたreplとブラウザ端末を接続したい。ここで私はそれが既にsocket.io接続にコンソール出力を押し、フロントエンドに表示されない何Socket.ioストリームをノードreplストリームに接続します

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

思い付いたものです。それはreplのフロントエンドからのデータを入力していません。

アイデア?

答えて

0

私はちょうどあなたのコードを試みたが、私はあなたがそれを認識するようにREPLのために発するあなたのストリームに改行を必要とするかもしれないと思う:

// emit data to repl stream - DOES NOT WORK 
stream.emit('data', data+'\n'); 
関連する問題