我想编写一个包装器程序,将通过websocket接收的文本注入到生成的进程中 我试过这样的事情
const { spawn } = require('child_process');
const cmd = spawn(cmdname, {stdio:"inherit"})
// cmd.stdin is null
但是我需要cmd.stdin
所以我尝试了以下但是它不起作用我不知道什么是错的。例如,对于cmdname=python3
,它应该像repl一样,但事实并非如此。
const { spawn } = require('child_process');
const cmd = spawn(cmdname, {stdio:["pipe", 1, 2]})
process.stdin.pipe(cmd.stdin)
//var websocket = require('websocket-stream')
//var mergeStream = require('merge-stream')
//var wss = websocket.createServer({
// perMessageDeflate: false,
// port: opts.port
//}, handle)
//function handle(wstream) {
// mergeStream(wstream,process.stdin).pipe(cmd.stdin);
//}
由于上述问题,我没有测试合并部分。
我的节点版本是v8.6.0
,如果那是相关的
答案 0 :(得分:0)
问题是我必须将-i
放入args
const cmd = spawn("python3",["-i"], {stdio:["pipe", 1, 2]})
我并不需要合并流。
这是完整的代码:replwrap