Node.js流式传输python自动完成条目

时间:2013-10-26 20:59:16

标签: python node.js stream socket.io ipython

我正在创建一个具有IPython命令行界面的Web应用程序,我想添加自动完成功能。到目前为止,stdout / stdin的读写工作正常,我可以传输命令,但是我无法实现自动完成功能。我尝试通过stdin发送\t,但这不是要走的路。有没有办法做到这一点?

这是我的基本服务器逻辑:

var python = spawn('ipython', ['-i']);
s.on('run', function (input) {
  python.stdin.write(input.command + '\n');
});
python.stdout.on('data', function (data) {
  var output = '' + data;
  s.emit('response', {
    output: output
  });
});
python.stderr.on('data', function (data) {
  var output = '' + data;
  s.emit('response', {
    error: output
  });
});

1 个答案:

答案 0 :(得分:0)

为什么那么讨厌大写我?它是IPython(不是由Apple构建的),但没关系。

话虽如此,为什么要使用重新发明轮子的艰难道路呢 没有读过关于同一主题的其他SO questions

我猜你的有点不同,因为你在服务器端有js所以你可以要求 服务器端的ZMQ符合the message spec(和blog post about messaging protocol from the guy who wrote IHaskell)。有了它,它比解析stdout要脆得多,有更多功能(发送图像)。此外,您还可以免费使用其他语言,如果您搭建了websockets,我想您可以重用kernel.js

愚蠢的问题,但你见过IPython笔记本吗?看起来你可以从中重复使用。