23

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

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

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

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

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

  1. 任何术语
  2. ajaxterm

    没有回滚条

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

4

3 回答 3

7

我经常使用 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 的评论基于 Ajaxterm 0.10。我还没有尝试过 0.11,它显然包含“小补丁”。我对 Anyterm 的评论基于他们网站上的演示。我实际上并没有在愤怒中使用它。

于 2009-12-22T17:25:13.840 回答
5

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

于 2013-08-14T13:44:53.940 回答
2

想知道为什么没有人提到http://shellinabox.com。我评估了 shellinabox 和 ajaxterm。Shellinabox 比 ajaxterm 快(我不知道内部细节)。此外,shellinabox 可以登录用户而不需要给用户明确的 ssh 访问权限(不确定它是否是一个很好的优点)。

Shellinabox 虽然在 iframe 中运行有问题。但是,如果您希望独立运行一些东西来访问您的服务器,那么猜测 shellinabox 是最好的选择。


我已经运行Rails 教程网站一段时间了。我最终部署了 Gateone - https://github.com/liftoff/GateOne ‎ 但它在浏览器 + 操作系统组合方面存在不少问题。最后我们创建了自己的伪终端(它不支持 vim 等)。检查https://github.com/pocha/terminal-codelearn

于 2012-05-24T22:19:33.133 回答