Обратный вызов интерактивной оболочки Python SSH при получении данных

Я пытаюсь реализовать интерактивную оболочку SSH, используя python в качестве серверной части. В основном я хочу передать каждый символ в оболочку вместе со специальным символом, таким как новая строка, Ctrl-C. Затем передайте результат. Я нашел аналогичное решение в node.js по адресу Подключение к удаленному SSH-сервер (через консоль Node.js/html5) Я могу установить веб-сокет со стороны fronend/JS и отправлять каждый символ при нажатии клавиши. Но я столкнулся с проблемой возврата вывода оболочки. В пакете node.js ssh2 похоже, что при получении данных он может вызвать некоторую функцию

    }).on('data', function(data) {
      console.log('STDOUT: ' + data);
    }).stderr.on('data', function(data) {
      console.log('STDERR: ' + data);
    });

Я проверил питона ssh2-python и Paramiko, но в обоих я вижу, что мы должны непрерывно зацикливаться и проверять, доступны ли какие-либо данные на канале. Есть ли у нас что-то вроде обратного вызова, похожего на node.js? Чтобы я мог обрабатывать входящий поток + непрерывный исходящий поток (в случае команды типа top и ping)


person pab789    schedule 03.09.2020    source источник