【问题标题】:Connect a Socket.io stream to node repl stream将 Socket.io 流连接到节点 repl 流
【发布时间】:2012-11-21 21:50:22
【问题描述】:

我使用 socket.io 创建了一个快速应用程序。现在我想要一个浏览器终端与我在 node.js 中创建的 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 中从前端输入数据。

想法?

【问题讨论】:

    标签: node.js sockets socket.io


    【解决方案1】:

    我刚刚尝试了您的代码,我认为您可能需要在您的流发射上换行以便 repl 识别它:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-20
      • 2012-10-31
      • 1970-01-01
      • 2010-12-07
      • 1970-01-01
      • 2012-09-06
      • 1970-01-01
      • 2017-03-02
      相关资源
      最近更新 更多