簡體   English   中英

將Socket.io流連接到節點repl流

[英]Connect a Socket.io stream to node repl stream

我用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的前端輸入數據。

想法?

我只是嘗試了你的代碼,我認為你可能需要在你的流上發布一個換行符,以便repl識別它:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM