是否有用于 JavaScript 的 Telnet 库?

Posted

技术标签:

【中文标题】是否有用于 JavaScript 的 Telnet 库?【英文标题】:Is there a Telnet library for JavaScript? 【发布时间】:2011-06-11 04:04:55 【问题描述】:

我们有一台网络摄像机。它有一个 HTTP 服务器来提供当前图像。还有一个 Telnet 接口用于控制相机(即触发、对焦等)。我想向相机添加一个 html 页面,该页面将提供一个简单的界面(我们已经有我们编写的客户端软件)。我可以“获取”图像并显示它,但我也想要使用 Telnet 界面来控制相机的控件。因此,按钮后面可能有 javascript 代码,通过 Telnet(登录)连接到摄像头并发出触发摄像头的命令。

我知道 JavaScript/浏览器支持通过 XMLHttpRequest 连接到同一主机。在这种情况下,我希望在端口 23 上打开一个套接字并发送文本。我也知道我可以通过 Flash、Java 或其他一些技术来做到这一点,但我更愿意只使用 JavaScript。如果可以的话。

【问题讨论】:

【参考方案1】:

Thomaschaaf 是正确的,虽然 HTML5 引入了 websocket,但您会发现它们仍然需要特殊的服务器支持,因为它们会在打开套接字时发布 HTTP 样式信息:

JS/HTML5 WebSocket: Connect without HTTP call

目前,拥有真正套接字的最佳方法是

在网页上使用 Flash 或 Java 组件来执行实际的套接字工作。 使用带有 websockets 的代理服务器,可以处理 websockets 的额外协议开销,并使用普通套接字连接到真实的 tcp/ip 端口。

Matt 链接的 jsterm 示例是后者,如果您的 webcans 位于防火墙后面,那么如果不实现另一台服务器,它将无法在您的情况下工作。

有实现第一种方法的库,为了方便,这里链接了两个,其他的可以使用搜索引擎找到:

http://stephengware.com/proj/javasocketbridge/ (Java)

http://matthaynes.net/blog/2008/07/17/socketbridge-flash-javascript-socket-bridge/(闪光)

【讨论】:

【参考方案2】:

jsTerm 是 Telnet 客户端的 HTML5 实现。

您需要a browser that supports HTML5 WebSockets。 WebSockets 是使用纯 JavaScript 进行非 HTTP 请求的唯一方法。

【讨论】:

除了支持 HTML5 WebSockets 的浏览器之外,您还需要一个 Node.js 服务器作为远程登录代理。 到 jsTerm 的链接断开。 @KonradGajewski 我编辑了答案以引用 GitHub 存储库。但不幸的是,该项目现在似乎被放弃了。【参考方案3】:

目前无法仅使用 JavaScript 进行套接字连接。

但是您要搜索的是套接字连接;)

https://developer.mozilla.org/en/XML_Extras

【讨论】:

【参考方案4】:

如果我将这个问题宽泛地解释为“是否有用于 Javascript 的远程连接库”,那么答案是肯定的(引自 https://xtermjs.org/):

使用 xterm.js、socket.io 和 ssh2 的基于 Web 的 SSH2 客户端:https://github.com/billchurch/WebSSH2 基于 HTML5 的 SSHv2 Web 客户端,使用 xterm.js、SJCL 和 websockets 进行端到端加密:https://github.com/stuicey/SSHy

我用 node.js 简单地尝试过 WebSSH2,它对我有用 - 我设法用它连接到基于 Linux 的服务器。

(我知道这可能对 OP 没有帮助,但无论如何这是一个已有 7 年历史的问题。也许它可以帮助其他需要回答类似问题的人。)

【讨论】:

以上是关于是否有用于 JavaScript 的 Telnet 库?的主要内容,如果未能解决你的问题,请参考以下文章

华三模拟器能ping通为啥不能telnet交换机

在 telnet 会话中使用变量

在Dos或命令行下输入telnet 服务器IP 端口 连通有啥提示

telnet是啥意思???

为啥ssh可以连接telnet连不上

10.12 telnet:远程登录主机