2016-11-30 98 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文件中的代碼被髮送到充當客戶端的瀏覽器。

相關問題