const electron = require('electron')
-const http = require('http')
-const path = require('path')
+const app = electron.app
const url = require('url')
+const WebSocket = require('ws')
+const http = require('http')
const fs = require('fs')
-const app = electron.app
-const BrowserWindow = electron.BrowserWindow
-const ipcMain = electron.ipcMain
-
-let mainWindow
-
-function beginRendererProcess() {
- mainWindow = new BrowserWindow({show: true, webPreferences: { webSecurity: false, experimentalFeatures: true}})
- mainWindow.loadURL(url.format({
- pathname: path.join(__dirname, 'renderer.html'),
- protocol: 'file:',
- slashes: true
- }))
- mainWindow.webContents.openDevTools()
-}
-
-function captureStream() {
- mainWindow.webContents.send('defaultStreamRequest', 'slr')
- let p = new Promise((resolve,reject) => {
- ipcMain.on('defaultStreamResponse', (event, arg) => {
- console.log('received defaultStreamResponse')
- console.log(arg)
- resolve(arg)
- })
- })
-
- return p
-}
-
const routes = {
'/': function root(response) {
- response.write(fs.readFileSync('admin.html'))
+ response.write(fs.readFileSync('host/host.html'))
response.end()
},
'/admin.js': function js(response) {
- response.write(fs.readFileSync('admin.js'))
+ response.write(fs.readFileSync('host/host.js'))
response.end()
},
- '/admin.css': function css(response) {
- response.write(fs.readFileSync('admin.css'))
+ '/adapter.js': function adapter(response) {
+ response.write(fs.readFileSync('adapter.js'))
response.end()
},
- '/favicon.ico': function favicon() {
+ '/favicon.ico': function favicon(response) {
+ response.write('N/A')
response.end()
},
'/streamlist': function streamlist(response) {
- let mediaStream = captureStream().then((stream) => {
- console.log(stream)
- })
-
- //response.write(mediaStream)
+ getDefaultStream()
}
}
-app.on('ready', function() {
- beginRendererProcess()
+const rooms = {}
+
+/* TODO: Swap out url.parse with regex? */
+function determineResponse(request) {
+ const clientIP = request.connection.remoteAddress
+ || request.socket.remoteAddress
+ || request.connection.socket.remoteAddress
+ || req.headers['x-forwarded-for'].split(',')[0]
+ const parsedURL = url.parse(request.url)
+ /* Get the room name */
+ const pathname = parsedURL.pathname
+
+
+}
+
+app.on('ready', function() {
+ console.log('create server')
http.createServer(function(request, response) {
- const url = request.url
- console.log('routing to ' + url);
- routes[url](response)
+
+ let route = determineResponse(request)
+
+ console.log('routing to ' + route)
+ routes[route](response)
}).listen(5140);
+
});