✨ Created server-side code.
This commit is contained in:
parent
6f66a7ef02
commit
3b89fdef60
42
main.js
42
main.js
@ -1,4 +1,42 @@
|
||||
// Reference: https://hub.packtpub.com/making-simple-web-based-ssh-client-using-nodejs-and-socketio/
|
||||
|
||||
var os = require('os');
|
||||
var pty = require('node-pty');
|
||||
var express = require('express');
|
||||
var https = require('https');
|
||||
var http = require('http');
|
||||
var fs = require('fs');
|
||||
var pty = require('pty.js');
|
||||
|
||||
// Set up express server
|
||||
let app = express();
|
||||
|
||||
app.use("/", express.static("./"));
|
||||
|
||||
// Creating an HTTP server
|
||||
var server = http.createServer(app).listen(9774);
|
||||
|
||||
var io = require('socket.io')(server);
|
||||
|
||||
// When a new socket connects
|
||||
io.on('connection', function (socket) {
|
||||
// Create terminal
|
||||
var term = pty.spawn('sh', [], {
|
||||
name: 'xterm-color',
|
||||
cols: 80,
|
||||
rows: 30,
|
||||
cwd: process.env.HOME,
|
||||
env: process.env
|
||||
});
|
||||
// Listen on the terminal for output and send it to the client
|
||||
term.on('data', function (data) {
|
||||
socket.emit('output', data);
|
||||
});
|
||||
// Listen on the client and send any input to the terminal
|
||||
socket.on('input', function (data) {
|
||||
term.write(data);
|
||||
});
|
||||
// When socket disconnects, destroy the terminal
|
||||
socket.on("disconnect", function () {
|
||||
term.destroy();
|
||||
console.log("bye");
|
||||
});
|
||||
});
|
Loading…
Reference in New Issue
Block a user