proof of concept to change socket.io path

in this version, socket.io path is /ssh/socket.io
This commit is contained in:
Bill Church 2019-10-01 10:25:54 -04:00
parent 341e61eb01
commit 63eedabbba
4 changed files with 30365 additions and 10 deletions

File diff suppressed because one or more lines are too long

View file

@ -292,3 +292,5 @@ body, html {
.dropup:hover .dropbtn { .dropup:hover .dropbtn {
background-color: #3e8e41; background-color: #3e8e41;
} }
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJ3ZWJzc2gyLmNzcyIsInNvdXJjZVJvb3QiOiIifQ==*/

View file

@ -1,6 +1,6 @@
'use strict' 'use strict'
import * as io from 'socket.io-client' import io from 'socket.io-client'
import * as Terminal from 'xterm/dist/xterm' import * as Terminal from 'xterm/dist/xterm'
import * as fit from 'xterm/dist/addons/fit/fit' import * as fit from 'xterm/dist/addons/fit/fit'
import { library, dom } from '@fortawesome/fontawesome-svg-core' import { library, dom } from '@fortawesome/fontawesome-svg-core'
@ -19,7 +19,9 @@ var loggedData = false
var allowreplay = false var allowreplay = false
var allowreauth = false var allowreauth = false
var sessionLog, sessionFooter, logDate, currentDate, myFile, errorExists var sessionLog, sessionFooter, logDate, currentDate, myFile, errorExists
var socket, termid // eslint-disable-line var termid // eslint-disable-line
// change path here and in the /app/server/app.js line 115
var socket = io({path: '/ssh/socket.io'})
var term = new Terminal() var term = new Terminal()
// DOM properties // DOM properties
var status = document.getElementById('status') var status = document.getElementById('status')
@ -30,7 +32,6 @@ var terminalContainer = document.getElementById('terminal-container')
term.open(terminalContainer) term.open(terminalContainer)
term.focus() term.focus()
term.fit() term.fit()
window.addEventListener('resize', resizeScreen, false) window.addEventListener('resize', resizeScreen, false)
function resizeScreen () { function resizeScreen () {
@ -38,16 +39,21 @@ function resizeScreen () {
socket.emit('resize', { cols: term.cols, rows: term.rows }) socket.emit('resize', { cols: term.cols, rows: term.rows })
} }
if (document.location.pathname) { // this area seems unneccessary now, tested out in Chrome 77 - bill
//
/* if (document.location.pathname) {
var parts = document.location.pathname.split('/') var parts = document.location.pathname.split('/')
var base = parts.slice(0, parts.length - 1).join('/') + '/' var base = parts.slice(0, parts.length - 1).join('/') + '/'
var resource = base.substring(1) + 'socket.io' var resource = base.substring(1) + '/ssh/socket.io'
socket = io.connect(null, { socket = io(null, {
path: '/ssh/socket.io',
resource: resource resource: resource
}) })
// socket.connect()
} else { } else {
socket = io.connect() socket = io('http://localhost:2222', {path: '/ssh/socket.io'})
} // socket.connect()
} */
term.on('data', function (data) { term.on('data', function (data) {
socket.emit('data', data) socket.emit('data', data)

View file

@ -112,7 +112,7 @@ var compression = require('compression')
var server = require('http').Server(app) var server = require('http').Server(app)
var myutil = require('./util') var myutil = require('./util')
var validator = require('validator') var validator = require('validator')
var io = require('socket.io')(server, { serveClient: false }) var io = require('socket.io')(server, { serveClient: false, path: '/ssh/socket.io' })
var socket = require('./socket') var socket = require('./socket')
var expressOptions = require('./expressOptions') var expressOptions = require('./expressOptions')