2016-11-30 115 views
0

我下面这个tutorial,我在那里说一点很困惑:我刚刚用Node.js实现了什么?

“...... 令人惊讶的代码非常简单:”

// Connect to the socket.io server 
var socket = io.connect('http://localhost:8080'); 
// Wait for data from the server 
socket.on('output', function (data) { 
    ... 

我不知道在哪里把这个代码。我试图把它添加到浏览器的JS,像这样:

<html> 
    <head> 
     <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/socket.io/1.3.5/socket.io.min.js"></script> 
     <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script> 
     <script> <!-- here --> 
     // Connect to the socket.io server 
     var socket = io.connect('http://localhost:8080'); 
      // ... 
     </script> 
    </head> 
    <body> 
     <h1>SSH</h1> 
     <div class="terminal"></div> 
    </body> 
</html> 

它的工作!它是否正确?我认为这是一个服务器端代码。

无论如何,现在我得到一个终端,我可以与之互动。但我不确定它在做什么。我试图实现一个SSH客户端,但它看起来像我获得了一个浏览器终端,我将手动连接到SSH?

另外我相信这只会在本地机器上工作。但是我想要的是一个可以使用SSH访问我的机器的-remote- web服务器(尽管它可能不是很安全)。我在正确的方向吗?我怎样才能实现一台Web服务器,作为我的机器上的SSH服务器的客户端?

谢谢,

+0

为什么不使用SSH? – Brad

+0

我想为非技术用户提供一个GUI,允许他们在我的机器上执行操作,而无需输入任何终端命令。 – jeff

+0

我喜欢这个问题的标题。 – xShirase

回答

1

它以任何方式,形状或形式与SSH完全没有关系。 这是一个websocket服务器/客户端,它允许您在浏览器和服务器之间发送消息(而不是命令)。

它最常用于聊天应用程序,虽然有无尽的其他用途。

但是,通过这种机制,您可以解释服务器上的某些消息,并让它们执行您希望允许用户使用的命令。

它是如何工作的(服务器端)简单的例子:

socket.on('ls',(path,cb)=>{ 
    fs.readdir(path, (err, files) => { 
     cb(files); 
    }); 
}); 

,并在客户端上:

socket.emit('ls','/home',(files)=>{ 
    console.log(files); 
}; 

客户在这里发出一个 'ls' 的情况下,与路径(用户选择或某物);服务器解释此消息,获取给定路径的文件列表,并将其返回给客户端。这种机制可以用来实现各种命令。但请记住,这不是SSH。

Read more on Socket.io

0

这是一个套接字服务器。它监听来自浏览器的连接。这就是你在HTML中所做的。

+0

所以这不仅仅是一个SSH客户端,而是一个到终端的接口(?),所以如果我想让它“ssh”到另一台(或同一台)机器,我必须自己输入命令如'ssh user @ ip',或者通过编程方式。所以这比我想要的要多:)如果我将这个应用程序部署到远程服务器上呢?我也能控制它的终端吗? – jeff

1

如果你是以下教程的服务器端代码server.js。这是一个带有socket.io扩展名的简单express.js web服务器。

.html文件中的代码被发送到充当客户端的浏览器。

相关问题