2009-12-22 15 views
22

Abbiamo diverse applicazioni in stile curses a cui vorremmo fornire l'accesso tramite un'interfaccia basata su browser.Cos'è un buon emulatore di terminale basato su browser?

Abbiamo un'applicazione di un altro fornitore che apparentemente la fornisce in base a una vecchia versione di JTA (Java Telnet App) ma che l'applet non gestisce cose come il ridimensionamento e ha un supporto relativamente scarso per i buffer scroll-back e il copia/incolla.

In questo giorno di interfacce basate su Ajax, sono curioso di sapere se esistono soluzioni valide e gratuite.

Grazie a questo sito Web, ho visto i riferimenti all'emulatore di terminale basato sul web di Reflection, ma probabilmente è troppo costoso per le nostre esigenze.

Alcuni dei potenziali candidati che ho visto includono

  1. anyterm
  2. ajaxterm

    Nessun bar scrollback

ma non ho avuto la possibilità di fare una valutazione dettagliata.

risposta

7

Uso Ajaxterm frequentemente come un modo pratico per amministrare un server Web da qualsiasi luogo. Ha funzionato bene fino a quando non sono passato a Chrome come browser principale. Ajaxterm funziona alla grande con Firefox e IE8, ma è inutilizzabile con Chrome, Safari e Opera.

Ho scoperto che su Chrome, Safari e Opera, molti tasti "speciali" non vengono passati ad Ajaxterm, inclusi backspace, i tasti freccia, ctrl + c, ctrl + h, home, end, etc. Opera è anche peggio: quando premi shift, la pressione dei tasti viene tradotta in^P, quindi non puoi digitare maiuscole. Queste cose sono per me degli showstoppers; sono probabilmente anche degli spettacoli per te.

Anyterm ha funzionato bene per me in tutti i browser che ho provato, incluso IE6.

Altre cose da tenere a mente:

  • Anyterm mantiene una connessione aperta in costante mentre è in esecuzione, e utilizza una seconda connessione per pressione dei tasti. Tutti i browser hanno un limite al numero di connessioni simultanee a un singolo host. IE 7 e inferiori hanno un limite di due connessioni simultanee (come richiesto dalle specifiche HTTP), quindi una singola istanza di Anyterm potrebbe limitare al massimo le connessioni a quell'host. Tuttavia questo è ragionevolmente facile da lavorare usando semplicemente un hostname separato per Anyterm.
  • sondaggi di Ajaxterm per gli aggiornamenti, quindi non mantiene una connessione aperta costantemente. Utilizza la stessa connessione per pressioni dei tasti e aggiornamenti dello schermo. D'altra parte lo schermo non si aggiorna sempre non appena possibile, e l'overhead della rete per l'aggiornamento dello schermo è maggiore.
  • Ajaxterm aggiorna l'intero schermo in una volta sola, anche per modificare un singolo carattere. Anyterm aggiorna solo la parte dello schermo che è stata modificata. È discutibile che è più veloce; in genere un intero schermo può essere contenuto in un singolo pacchetto, e l'approccio di Anyterm ha un maggiore overhead di elaborazione, sia sul lato server che lato client.

Nota: I miei commenti su Ajaxterm si basano su Ajaxterm 0.10. Non ho provato 0.11, che a quanto pare include "patch minori".I miei commenti su Anyterm sono basati sulle demo disponibili sul loro sito. In realtà non l'ho usato con rabbia.

2

Chiedendosi come mai nessuno ha parlato di http://shellinabox.com. Ho valutato shellinabox & ajaxterm. Shellinabox è più veloce di ajaxterm (non conosco i dettagli interni). Inoltre, shellinabox può accedere a un utente senza la necessità di fornire all'utente l'accesso ssh esplicito (non è sicuro se sia un grande vantaggio).

Shellinabox ha comunque problemi di esecuzione all'interno di un iframe. Ma se stai cercando di eseguire qualcosa di autonomo per accedere al tuo server, indovina shellinabox è la soluzione migliore.


Sono stato in esecuzione Rails Tutorial sito per qualche ora. Alla fine ho implementato Gateone - https://github.com/liftoff/GateOne ma aveva alcuni problemi con le combinazioni browser + SO. Finalmente abbiamo creato il nostro pseudo terminale (non supporta vim etc). Controllare https://github.com/pocha/terminal-codelearn.

+0

Chi sta utilizzando iframe? : p Devo dire che shellinabox mi ha aiutato meglio per il mio caso d'uso in cui avevo problemi di carattere speciali su Windows XP e Chromium: vedi http://askubuntu.com/questions/48515/is-there-a-secure-web- shell-per-my-server/220489 # 220489 – Dolanor

+0

Solo un punto di chiarimento: Gate One * funziona * dietro i proxy. Semplicemente non funziona tramite * alcuni * proxy. Software proxy che non è stato aggiornato nelle interruzioni di età e proxy SSL che si avvitano con la connessione (che è un problema di sicurezza). –

4

Ho provato oggi https://github.com/chjj/tty.js/ e funziona bene, si può provare.

+0

Non penso che questo abbia abbastanza upvotes. Semplice da installare usando 'npm install -g', e funziona davvero bene. Progetto open source molto popolare. –

+0

Nice, ma apparentemente manca il supporto Unicode e non sembra consentirvi di ricollegarvi alle sessioni in esecuzione. https://github.com/liftoff/GateOne fa quelle cose però. – w00t

Problemi correlati