Is there a Telnet library for JavaScript?

2020-02-09 06:41发布

We have a network camera. It has an HTTP server to provides the current image. There is also a Telnet interface for controlling the camera (i.e. trigger, focus, etc.). I would like to add an HTML page to the camera that would provide a simple interface (we already have client software we write). I can "GET" the image and display that, but I would also like to have controls that use the Telnet interface to control the camera. So a button might have JavaScript code behind it that connects to the camera via Telnet (logs in) and issues the command to trigger the camera.

I know that JavaScript/browsers support connecting to the same host via XMLHttpRequest. In this case I would be looking to open a socket on port 23 and send text. I also know that I can do this through Flash, Java, or some other technology, but I would prefer to use JavaScript only. If that is possible.

4条回答
贪生不怕死
2楼-- · 2020-02-09 07:25

jsTerm is an HTML5 implementation of a Telnet client.

You'll need a browser that supports HTML5 WebSockets. WebSockets is the only method of doing non-HTTP requests with pure JavaScript.

查看更多
【Aperson】
3楼-- · 2020-02-09 07:29

Currently there is no way to do socket connections with JavaScript only.

But what you are searching for is a socket connection ;)

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

查看更多
▲ chillily
4楼-- · 2020-02-09 07:35

Thomaschaaf is correct, while HTML5 introduces websockets you'll find they still require special server support as they post HTTP style information upon opening the socket:

JS/HTML5 WebSocket: Connect without HTTP call

The best way, currently, to have true sockets is to either

  • use a flash or Java component on the webpage that does the actual socket work.
  • use a proxy server with websockets that can handle the additional protocol overhead of websockets and connect to the real tcp/ip port with plain sockets.

The jsterm example Matt linked does the latter, and if your webcans are behind a firewall it will not work in your situation without also implementing another server.

There are libraries that implement the first method, two are linked here for convenience, many others can be found using a search engine:

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

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

查看更多
老娘就宠你
5楼-- · 2020-02-09 07:45

If I interpret the question liberally as "is there a remote connectivity library for Javascript", then the answer is yes (quoting from https://xtermjs.org/):

I've tried WebSSH2 with node.js briefly, it worked for me - I managed to connect to a Linux-based server with it.

(I know this probably doesn't help the OP but this is a 7-year old question anyway. Maybe it helps others who are needing an answer to a similar problem.)

查看更多
登录 后发表回答