PHP CLI + Ajax для веб-терминала - PullRequest
0 голосов
/ 31 октября 2010

Я пытаюсь определить наилучший подход к предоставлению терминала на основе Ajax с использованием PHP.Я еще не пытался написать его, но развернул идею, и единственный способ, которым я мог это увидеть, - это 2 сценария:

  • Сценарий 1 ;обрабатывает Ajax-связь между сервером и клиентским браузером.когда делается запрос на использование терминала, он подключается (или запускается как служба, а затем подключается) Script 2 через сокет.

  • Сценарий 2 ;выполняет системные вызовы, передавая выходные данные в сценарий Ajax для вывода через сокет.

Хотя в этом есть несколько дыр, и мне интересно, если кто-то создал/ видел набор скриптов, которые могут выполнять эти задачи?Любое понимание будет высоко ценится!

Спасибо:)


Редактировать : Я думаю, что мне было неясно о некоторых вещах.Я нашел несколько сценариев, которые имитируют терминалы, предоставляя почти необходимую функциональность, такую ​​как AjaxPHPTerm (http://sourceforge.net/projects/ajaxphpterm/)

Проблема заключается в том, что я пытаюсьнайти метод, который разрешает взаимодействие со сценариями оболочки. Если сценарий запрашивает Press any key to continue или Select option [x], используя AjaxPHPTerm, он просто зависает или выпадает из сценария оболочки.

Вот почему я начал думать о сокетахили потоки: какой-то способ формирования прямого потока ввода-вывода для системных вызовов.

Ответы [ 2 ]

1 голос
/ 26 апреля 2011

Проблема, похоже, в том, что AjaxPHPTerm на самом деле ближе к оболочке, чем к терминалу (взглянув на код, он, похоже, выполняет свою собственную обработку CWD и имеет простой цикл read-eval-print).

Если предположить, что на сервере установлена ​​Posix-совместимая ОС, правильным способом реализации этого, вероятно, было бы использование псевдотерминала, чтобы ваш веб-терминал выглядел как виртуальный терминал в системе, к которому работающие программы могли получать интерактивный доступ.

1 голос
/ 01 ноября 2010

Http не имеет состояния, и AJAX, сокеты или любые другие технологии, основанные на страницах, генерируемых сервером, не изменят его магическим образом. Какие бы уловки Вы ни использовали, это будет неэффективно и просто не стоит усилий (по крайней мере, на мой взгляд).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...