【问题标题】:What's a good browser-based terminal emulator? [closed]什么是好的基于浏览器的终端模拟器? [关闭]
【发布时间】:2010-12-29 00:36:20
【问题描述】:

我们有几个 curses 风格的应用程序,我们希望通过基于浏览器的界面提供对它们的访问。

我们有一个来自另一家供应商的应用程序,它表面上基于旧版本的 JTA (Java Telnet App) 提供此功能,但该小程序不能很好地处理调整大小等问题,并且对回滚缓冲区和复制/粘贴的支持相对较差.

在基于 Ajax 的界面的今天,我很好奇是否有任何好的、免费的解决方案。

感谢这个网站,我看到了对 Reflection 的基于 Web 的终端仿真器的引用, 但这对于我们的需求来说可能太贵了。

我见过的一些潜在候选人包括

  1. 任意项
  2. ajaxterm

    没有回滚条

但我还没有机会做详细的评估。

【问题讨论】:

    标签: terminal webbrowser-control terminal-emulator


    【解决方案1】:

    我经常使用 Ajaxterm 作为从任何地方管理 Web 服务器的便捷方式。在我切换到 Chrome 作为我的主要浏览器之前,它对我来说效果很好。 Ajaxterm 适用于 Firefox 和 IE8,但不适用于 Chrome、Safari 和 Opera。

    我发现在 Chrome、Safari 和 Opera 上,许多“特殊”键无法传递给 Ajaxterm,包括退格键、箭头键、ctrl+c、ctrl+h、home、end 等。Opera 是更糟糕的是:当你按下 shift 键时,按键会被翻译成 ^P,所以你不能输入大写字母。这些东西对我来说是最引人注目的;它们也可能是你的最佳选择。

    Anyterm 在我尝试过的所有浏览器(包括 IE6)中都能正常工作。

    其他注意事项:

    • Anyterm 在运行时始终保持连接打开,并使用第二个连接进行按键操作。所有浏览器对单个主机的并发连接数都有限制。 IE 7 及以下版本有两个并发连接的限制(根据 HTTP 规范的要求),因此 Anyterm 的单个实例可以在大部分时间最大化与该主机的连接。但是,只需为 Anyterm 使用单独的主机名,这很容易解决。
    • Ajaxterm 轮询更新,因此它不会不断保持连接打开。它对按键和屏幕更新使用相同的连接。另一方面,屏幕并不总是尽快更新,每次屏幕更新的网络开销更大。
    • Ajaxterm 一次更新整个屏幕,甚至更改单个字符。 Anyterm 仅更新已更改的屏幕部分。哪个更快是有争议的;整个屏幕通常都可以放在一个数据包中,而 Anyterm 的方法在服务器端和客户端都有更大的处理开销。

    注意:我在 Ajaxterm 上的 cmets 基于 Ajaxterm 0.10。我还没有尝试过 0.11,它显然包含“小补丁”。我在 Anyterm 上的 cmets 是基于他们网站上的演示。我实际上并没有在愤怒中使用它。

    【讨论】:

      【解决方案2】:

      我今天试了https://github.com/chjj/tty.js/,效果很好,你可以试试。

      【讨论】:

      • 我认为这没有足够的支持。使用npm install -g 安装简单,效果非常好。非常受欢迎的开源项目。
      • 不错,但似乎缺少 Unicode 支持,并且似乎不允许您重新连接到正在运行的会话。 github.com/liftoff/GateOne 会做这些事情。
      【解决方案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

      【讨论】:

      • 谁在使用 iframe ? :p 我必须说 shellinabox 更好地帮助了我在 Windows XP 和 Chromium 上遇到特殊字符问题的用例:请参阅 askubuntu.com/questions/48515/…
      • 澄清一点:一号门确实在代理后面工作。它只是不能通过 一些 代理工作。长期未更新的代理软件以及与连接有关的 SSL 代理(这是一个安全问题)会中断。
      猜你喜欢
      • 2010-12-29
      • 2012-05-31
      • 1970-01-01
      • 2013-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-08
      • 2011-06-20
      相关资源
      最近更新 更多