Ich weiß nicht, ob das zu spät ist, aber ich habe es geschafft, ein Programm vom Browser ausgehend von diesem Code, der nur auf Linux funktioniert (ich benutze Ubuntu). Sie müssen interaktive Programme mit dem Präfix stdbuf -o0 ausführen.
var child = require('child_process');
var myREPL = child.spawn('bash');
process.stdin.pipe(myREPL.stdin);
myREPL.stdin.on("end", function() {
process.exit(0);
});
myREPL.stdout.on('data', function (data) {
console.log(data+'');
});
myREPL.stderr.on('data', function (data) {
console.log('stderr: ' + data);
});
Ein dann auf Browser zu machen arbeiten Sie brauchen nur Socket.io
var myREPL = child.spawn(program);
myREPL.stdin.on("end", function() {
socket.emit('consoleProgramEnded');
});
myREPL.stdout.on('data', function (data) {
socket.emit('consoleWrite',data+'');
});
myREPL.stderr.on('data', function (data) {
socket.emit('consoleWrite',data+'');
});
socket.on('consoleRead',function(message){
console.log("Writing to console:"+message);
myREPL.stdin.write(message.replace("<br>","")+"\n");
});
ich, dass Ihnen helfen, hoffen hinzuzufügen.
Was ist das Problem? Irgendwelche Fehlermeldungen? –
yeah, also im browser process.stdin & process.stdout sind undefined, welche Art von sinnvoll ist, da der Browser nicht erwartet wird, es zu unterstützen. Aber ich bin mir nicht sicher, wie man damit umgehen kann – ssarangi