5

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

すでに行っていることは、コンソール出力を socket.io 接続にプッシュし、それらをフロントエンドに表示することです。それがしないのは、フロントエンドからのデータを repl に入力することではありません。

アイデア?

4

1 に答える 1

0

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

// emit data to repl stream - DOES NOT WORK
stream.emit('data', data+'\n');
于 2013-01-29T00:21:24.420 に答える