Я пытаюсь закодировать удаленную оболочку с помощью Node.js. Вот что я на данный момент:Node.js: Удаленная оболочка с контрольными последовательностями
Client
var net = require('net');
var client = net.connect({port: 1234}, function(){
process.stdin.pipe(client);
client.pipe(process.stdout);
});
Сервер
var net = require('net'),
spawn = require('child_process').spawn;
var server = net.createServer(function(socket){
var sh = spawn('/bin/sh');
sh.stdout.pipe(socket);
sh.stderr.pipe(socket);
socket.pipe(sh.stdin);
});
server.listen(1234);
Она работает довольно хорошо с простыми командами, но когда я запускаю Emacs или нано это не потому, что управляющие последовательности не отправляются. Я хотел бы заставить его вести себя как ssh. Возможно ли такое? Может быть, using process.stdin.setRawMode (true)?
Thanks
Если вы ожидаете появления emacs, вы, вероятно, должны установить переменную среды DISPLAY. – marneborn
Настоящая проблема заключается в том, как отправлять управляющие последовательности, такие как^C,^X, KeyUp, KeyDown. Я пробовал с setRawMode (правда), он, похоже, не работает – joni539