有没有适用于JavaScript的Telnet库?

20
我们有一台网络摄像机。它有一个HTTP服务器提供当前图像。还有一个Telnet接口来控制摄像机(例如触发、聚焦等)。我想向摄像机添加一个HTML页面,以提供简单的界面(我们已经有了我们编写的客户端软件)。我可以“GET”图像并显示,但我也想拥有使用Telnet接口控制摄像机的控件。因此,一个按钮可能会在其后面具有JavaScript代码,该代码通过Telnet连接到摄像机(登录),并发出触发摄像机的命令。
我知道JavaScript/浏览器支持通过XMLHttpRequest连接到同一主机。在这种情况下,我将尝试在23号端口上打开一个套接字并发送文本。我也知道可以通过Flash、Java或其他技术来实现这一点,但如果可能的话,我更愿意只使用JavaScript。
4个回答

6

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

JS/HTML5 WebSocket: Connect without HTTP call

目前实现真正套接字的最佳方法是

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

Matt链接的jsterm示例采用后者,如果您的网络摄像头在防火墙后面,则需要实现另一个服务器才能使其正常工作。

有一些库实现了第一种方法,这里提供了两个便利链接,可以使用搜索引擎找到其他许多库:

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

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

意思是:这是一个关于 Flash 和 JavaScript Socket Bridge 的链接。

5

4
除了支持HTML5 WebSockets的浏览器外,你还需要一个Node.js服务器作为telnet代理。 - Tom Panning
jsTerm的链接已损坏。 - Konrad Gajewski
1
@KonradGajewski 我编辑了答案,引用了GitHub存储库。但是这个项目现在似乎被遗弃了。 - Per Lundberg

4

抱歉,找不到页面/en-US/XML_Extras。 - Nick Gammon

1
如果我对问题进行宽泛解释,即“是否有适用于Javascript的远程连接库”,那么答案是肯定的(引用自https://xtermjs.org/):

我曾尝试过WebSSH2与node.js一起使用,它对我有效-我成功地连接到了一个基于Linux的服务器。

(我知道这可能对OP没有帮助,但这是一个7年前的问题。也许它可以帮助其他需要类似问题答案的人。)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接