You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.7 KiB
44 lines
1.7 KiB
const path = require('path') |
|
const fs = require('fs') |
|
const express = require('express') |
|
const serverConfig = require('./config/serverConfig.js') // Server Config |
|
const wrtColor = require('./components/common/wrtColor') |
|
|
|
//Http 80 Route traffic to the frontend VUE application running with HTTPS |
|
const http = require('http') |
|
const httpApp = express() |
|
httpApp.all('*', (req, res) => res.redirect(301, `${serverConfig.frontEndUrl}`)) //301 - Moved Permanently |
|
const httpServer = http.createServer(httpApp) |
|
httpServer.listen(80, () => { |
|
//console.log(`http redirectiong 80 to Vue front end at ${serverConfig.frontEndUrl}`) |
|
wrtColor.green(`http redirectiong 80 to Vue front end at ${serverConfig.frontEndUrl}`) |
|
}) |
|
|
|
//Https to run socket.io |
|
const https = require('https') |
|
const httpsApp = express() |
|
const keyPath = fs.readFileSync(path.resolve(__dirname, `${serverConfig.certKeyPath}`)) |
|
const certPath = fs.readFileSync(path.resolve(__dirname, `${serverConfig.certPath}`)) |
|
const servOptions = { |
|
key: keyPath, |
|
cert: certPath |
|
} |
|
const httpsServer = https.createServer(servOptions,httpsApp) |
|
httpsServer.listen(serverConfig.httpsPort, () => { |
|
//console.log(`https listening on ${serverConfig.httpsPort} to handle socket.io requests`) |
|
wrtColor.green(`https listening on ${serverConfig.httpsPort} to handle socket.io requests`) |
|
}) |
|
|
|
// Attach Socket.IO to https server |
|
const io = require('socket.io') (httpsServer, { |
|
cors: { //https://socket.io/docs/v3/handling-cors/ |
|
origin: `${serverConfig.frontEndUrl}`, |
|
methods: ["GET", "POST"] |
|
} |
|
}) |
|
|
|
//load gameManagement |
|
require('./components/serverMgmt') |
|
//pass socket.io connections to socketHandler |
|
const { socketHandler } = require('./components/serverMgmt.js') |
|
socketHandler(io)
|
|
|