Reorganized a bit; Added preliminary web socket server.

This commit is contained in:
2023-01-04 01:03:54 -08:00
parent 92986cfb23
commit ac40b29f31
5 changed files with 107 additions and 40 deletions

39
app.js
View File

@@ -1,37 +1,2 @@
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');
var sassMiddleware = require('node-sass-middleware');
var indexRouter = require('./routes/index');
var pingRouter = require('./routes/ping');
var app = express();
let port = 3003;
let log = false;
if(process.env.PORT) port = process.env.PORT;
if(process.env.LOG) log = process.env.LOG;
console.log("Running on port: " + port);
if(log) app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(sassMiddleware({
src: path.join(__dirname, 'public'),
dest: path.join(__dirname, 'public'),
indentedSyntax: true, // true = .sass and false = .scss
sourceMap: true
}));
//app.use(express.static(path.join(__dirname, 'public')));
app.use('/', indexRouter);
app.use('/ping', pingRouter);
app.listen(port);
module.exports = app;
import('./websocket')
import('./express')

38
express.js Normal file
View File

@@ -0,0 +1,38 @@
let express = require('express');
let path = require('path');
let cookieParser = require('cookie-parser');
let logger = require('morgan');
let sassMiddleware = require('node-sass-middleware');
let indexRouter = require('./routes/index');
let pingRouter = require('./routes/ping');
let app = express();
let port = 3003;
let log = false;
if(process.env.PORT) port = process.env.PORT;
if(process.env.LOG) log = process.env.LOG;
console.log("Running on port: " + port);
if(log) app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(sassMiddleware({
src: path.join(__dirname, 'public'),
dest: path.join(__dirname, 'public'),
indentedSyntax: true, // true = .sass and false = .scss
sourceMap: true
}));
//app.use(express.static(path.join(__dirname, 'public')));
app.use('/', indexRouter);
app.use('/ping', pingRouter);
app.listen(port);
module.exports = app;

29
package-lock.json generated
View File

@@ -14,7 +14,8 @@
"mongodb": "^4.3.1",
"morgan": "~1.9.1",
"node-sass-middleware": "0.11.0",
"underscore": "^1.13.2"
"underscore": "^1.13.2",
"ws": "^8.4.2"
},
"devDependencies": {
"bestzip": "^2.1.7"
@@ -2918,6 +2919,26 @@
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
},
"node_modules/ws": {
"version": "8.11.0",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz",
"integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==",
"engines": {
"node": ">=10.0.0"
},
"peerDependencies": {
"bufferutil": "^4.0.1",
"utf-8-validate": "^5.0.2"
},
"peerDependenciesMeta": {
"bufferutil": {
"optional": true
},
"utf-8-validate": {
"optional": true
}
}
},
"node_modules/y18n": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
@@ -5315,6 +5336,12 @@
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
},
"ws": {
"version": "8.11.0",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz",
"integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==",
"requires": {}
},
"y18n": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",

View File

@@ -4,7 +4,7 @@
"private": true,
"scripts": {
"start": "node ./bin/www",
"build": "bestzip AvusdDataCollection.zip app.js bin public routes package*.json"
"build": "bestzip ../TempestDataCollection.zip app.js bin public routes package*.json"
},
"dependencies": {
"cookie-parser": "~1.4.4",
@@ -13,7 +13,8 @@
"mongodb": "^4.3.1",
"morgan": "~1.9.1",
"node-sass-middleware": "0.11.0",
"underscore": "^1.13.2"
"underscore": "^1.13.2",
"ws": "^8.4.2"
},
"devDependencies": {
"bestzip": "^2.1.7"

36
websocket.js Normal file
View File

@@ -0,0 +1,36 @@
import WebSocket, {WebSocketServer} from 'ws'
try {
const server = new WebSocketServer({
port: 3001,
perMessageDeflate: {
zlibDeflateOptions: {
// See zlib defaults.
chunkSize: 1024,
memLevel: 7,
level: 3
},
zlibInflateOptions: {
chunkSize: 10 * 1024
},
// Other options settable:
clientNoContextTakeover: true, // Defaults to negotiated value.
serverNoContextTakeover: true, // Defaults to negotiated value.
serverMaxWindowBits: 10, // Defaults to negotiated value.
// Below options specified as default values.
concurrencyLimit: 10, // Limits zlib concurrency for perf.
threshold: 1024 // Size (in bytes) below which messages
// should not be compressed if context takeover is disabled.
}
})
server.on('connection', function connection(socket) {
socket.on('message', function message(data) {
console.log("received: %s", data)
socket.send("pong")
})
})
}
catch(e) {
console.log(e);
}