node.js - 将 Socket.io 流连接到 Node repl 流

标签 node.js sockets socket.io

我用 socket.io 创建了一个 express 应用程序。现在我想要一个浏览器终端与我在 Node 中创建的 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');

关于node.js - 将 Socket.io 流连接到 Node repl 流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13700042/

相关文章:

javascript - 我如何告诉 Mocha 只在浏览器中运行某个测试(而不是在 node.js 中)?

javascript - 将零视为真值的模式

android - adb.exe 启动服务器失败 android studio

Python SocketServer.BaseRequestHandler 不会与远程请求通信

node.js - Sequelize DataTypes 类型错误 : Cannot read property 'INTEGER' of undefined

node.js - 获取给定一场比赛的所有关联记录

c - C语言客户端-服务器编程中发送字符串

javascript - 在 NodeJS 中使用 BETWEEN 子句

javascript - 在 ec2 实例上使用 socket.io 时出现 "websocket connection invalid"错误?

javascript - 在 Socket.io 中创建房间