terminal - hype - xterm docs
¿Qué es un buen emulador de terminal basado en navegador? (3)
Tenemos varias aplicaciones de estilo curses a las que nos gustaría brindar acceso a través de una interfaz basada en navegador.
Tenemos una aplicación de otro proveedor que aparentemente proporciona esto en base a una versión antigua de JTA (Java Telnet App) pero que el applet no maneja cosas como redimensionar bien, y tiene un soporte relativamente pobre para búferes de retroceso y copiar / pegar .
En este día de interfaces basadas en Ajax, tengo curiosidad por encontrar soluciones buenas y gratuitas.
Gracias a este sitio web, vi referencias al emulador de terminal basado en web de Reflection, pero probablemente sea demasiado costoso para nuestras necesidades.
Algunos de los posibles candidatos que he visto incluyen
- a cualquier término
ajaxterm
No hay barra de desplazamiento
pero no he tenido la oportunidad de hacer una evaluación detallada.
Intenté https://github.com/chjj/tty.js/ hoy y funciona bien, puedes intentarlo.
Preguntándose por qué nadie mencionó sobre http://shellinabox.com . Evalué shellinabox y ajaxterm. Shellinabox es más rápido que ajaxterm (no conozco los detalles internos). Además, shellinabox puede iniciar sesión a un usuario sin necesidad de darle al usuario acceso ssh explícito (no estoy seguro si es una gran ventaja).
Shellinabox tiene problemas para ejecutarse dentro de un iframe sin embargo. Pero si está buscando ejecutar algo independiente para acceder a su servidor, supongo que shellinabox es la mejor opción.
He estado ejecutando el sitio de Rails Tutorial desde hace algún tiempo. Eventualmente implementé Gateone - github.com/liftoff/GateOne pero tenía algunos problemas con las combinaciones de navegador + sistema operativo. Finalmente, creamos nuestro propio pseudo terminal (no es compatible con vim, etc.). Compruebe https://github.com/pocha/terminal-codelearn .
Utilizo Ajaxterm con frecuencia como una forma práctica de administrar un servidor web desde cualquier lugar. Me funcionó bien hasta que cambié a Chrome como mi navegador principal. Ajaxterm funciona muy bien con Firefox e IE8, pero no se puede usar con Chrome, Safari y Opera.
Descubrí que en Chrome, Safari y Opera, muchas teclas ''especiales'' no se pasan a Ajaxterm, incluyendo el retroceso, las teclas de flecha, ctrl + c, ctrl + h, inicio, final, etc. Opera es aún peor: cuando presiona Shift, la pulsación de tecla se traduce a ^ P, por lo que no puede escribir mayúsculas. Estas cosas son impresionantes para mí; Es probable que sean showstoppers para ti también.
Anyterm funcionó bien para mí en todos los navegadores que probé, incluido IE6.
Otras cosas a tener en cuenta:
- Anyterm mantiene una conexión abierta constantemente mientras se está ejecutando, y utiliza una segunda conexión para las pulsaciones de teclas. Todos los navegadores tienen un límite en el número de conexiones simultáneas a un solo host. IE 7 e inferior tienen un límite de dos conexiones simultáneas (como lo requiere la especificación HTTP), por lo que una única instancia de Anyterm podría maximizar las conexiones a ese host la mayor parte del tiempo. Sin embargo, es bastante fácil trabajar con él simplemente utilizando un nombre de host separado para Anyterm.
- Ajaxterm sondea las actualizaciones, por lo que no mantiene una conexión abierta constantemente. Utiliza la misma conexión para pulsaciones de teclas y actualizaciones de pantalla. Por otro lado, la pantalla no siempre se actualiza tan pronto como podría, y la sobrecarga de red por actualización de pantalla es mayor.
- Ajaxterm actualiza toda la pantalla de una sola vez, incluso para cambiar un solo carácter. Anyterm actualiza solo la parte de la pantalla que ha cambiado. Es discutible cuál es más rápido; De todas formas, una pantalla completa puede caber en un solo paquete, y el enfoque de Anyterm tiene una mayor sobrecarga de procesamiento, tanto en el lado del servidor como del cliente.
Nota : Mis comentarios sobre Ajaxterm se basan en Ajaxterm 0.10. No he probado 0.11, que aparentemente incluye ''parches menores''. Mis comentarios sobre Anyterm se basan en las demostraciones disponibles en su sitio. En realidad no lo he usado en ira.