webssh2/app/connectionHandler.js
2024-08-15 18:40:23 +00:00

53 lines
1.1 KiB
JavaScript

// server
// app/connectionHandler.js
const createDebug = require("debug")
var path = require("path")
var fs = require("fs")
var extend = require("util")._extend
const debug = createDebug("webssh2:connectionHandler")
function handleConnection(req, res, urlParams) {
debug("Handling connection")
urlParams = urlParams || {}
const clientPath = path.resolve(
__dirname,
'..',
'node_modules',
'webssh2_client',
'client',
'public'
)
const tempConfig = {
socket: {
url: req.protocol + '://' + req.get('host'),
path: '/ssh/socket.io'
},
autoConnect: true
}
fs.readFile(
path.join(clientPath, 'client.htm'),
'utf8',
function (err, data) {
if (err) {
return res.status(500).send('Error loading client file')
}
var modifiedHtml = data.replace(
/(src|href)="(?!http|\/\/)/g,
'$1="/ssh/assets/'
)
modifiedHtml = modifiedHtml.replace(
'window.webssh2Config = null;',
'window.webssh2Config = ' + JSON.stringify(tempConfig) + ';'
)
res.send(modifiedHtml)
}
)
}
module.exports = handleConnection