Подтвердить что ты не робот

Какой хороший эмулятор терминала на основе браузера?

У нас есть несколько приложений стиля curses, которые мы хотели бы предоставить через интерфейс на основе браузера.

У нас есть приложение от другого поставщика, который якобы предоставляет это на основе старой версии JTA (приложение Java Telnet), но этот апплет не обрабатывает такие вещи, как изменение размера, и имеет относительно плохую поддержку буферов прокрутки и копирования/вставки.

В этот день интерфейсов на основе Ajax мне любопытно, есть ли хорошие, бесплатные решения.

Благодаря этому веб-сайту я увидел ссылки на эмулятор веб-терминалов Reflection, но это, вероятно, слишком дорого для наших нужд.

Некоторые из потенциальных кандидатов, которых я видел, включают

  • anyterm
  • ajaxterm

    Нет полосы прокрутки

но у меня не было возможности сделать детальную оценку.

4b9b3361

Ответ 1

Я использую Ajaxterm часто как удобный способ администрирования веб-сервера из любого места. Он работал хорошо для меня, пока я не перешел на Chrome в качестве основного браузера. Ajaxterm отлично работает с Firefox и IE8, но недоступен для Chrome, Safari и Opera.

Я обнаружил, что в Chrome, Safari и Opera многие специальные клавиши не передаются Ajaxterm, включая backspace, клавиши со стрелками, ctrl + c, ctrl + h, home, end и т.д. Opera еще хуже: когда вы нажимаете shift, нажатие клавиши переходит в ^ P, поэтому вы не можете писать буквы типа. Для меня это шоу. они, вероятно, также показывают вас.

Anyterm отлично работал у меня во всех браузерах, которые я пробовал, включая IE6.

Другие вещи, которые нужно иметь в виду:

  • Anyterm постоянно поддерживает постоянное соединение, пока он работает, и использует второе соединение для нажатия клавиш. Все браузеры имеют ограничение на количество одновременных подключений к одному хосту. IE 7 и ниже имеют ограничение на два параллельных соединения (как это требуется спецификацией HTTP), поэтому один экземпляр Anyterm может максимально быстро подключаться к этому узлу. Однако это разумно легко работать, просто используя отдельное имя хоста для Anyterm.
  • Ajaxterm опросы для обновлений, поэтому он не поддерживает постоянное подключение. Он использует одно и то же соединение для нажатия клавиш и обновлений экрана. С другой стороны, экран не всегда обновляется, как только это возможно, а сетевые накладные расходы на обновление экрана больше.
  • Ajaxterm обновляет весь экран за один раз, даже для изменения одного символа. Anyterm обновляет только часть экрана, который изменился. Это спорно, который быстрее; весь экран, как правило, может входить в один пакет в любом случае, а подход Anyterms имеет большую нагрузку на обработку, как на стороне сервера, так и на стороне клиента.

Примечание. Мои комментарии к Ajaxterm основаны на Ajaxterm 0.10. Я havent пытался 0.11, который, по-видимому, включает в себя "незначительные патчи". Мои комментарии к Anyterm основаны на демонстрациях, доступных на их сайте. Я действительно не использовал его в гневе.

Ответ 2

Я пробовал https://github.com/chjj/tty.js/ сегодня, и он работает хорошо, вы можете попробовать.

Ответ 3

Интересно, почему никто не упоминал о http://shellinabox.com. Я оценил shellinabox и ajaxterm. Shellinabox быстрее, чем ajaxterm (я не знаю внутренних деталей). Кроме того, shellinabox может войти в систему без необходимости давать пользователю явный доступ к ssh (не уверен, что это отличный плюс).

У Shellinabox есть проблемы, запущенные внутри iframe. Но если вы хотите запустить что-то автономное для доступа к вашему серверу, предположите, что shellinabox - лучшая ставка.


Я запускал Rails Tutorial на какое-то время. В конце концов я развернул Gateone - https://github.com/liftoff/GateOne, но у него было немало проблем с комбинациями браузера и ОС. Наконец, мы создали собственный псевдотерминал (он не поддерживает vim и т.д.). Проверьте https://github.com/pocha/terminal-codelearn.