aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorSam Wilkins <samwilkins333@gmail.com>2020-05-22 23:25:44 -0700
committerSam Wilkins <samwilkins333@gmail.com>2020-05-22 23:25:44 -0700
commit28bae5e2a0d83819efa1e5e96f8f21cf5027effd (patch)
tree44a0635aaf659db2636f22db30b53c012eb3d36c /src/server
parent962295ca7356e74f61942bd7874bdfb38ad14ec8 (diff)
fixed port issues
Diffstat (limited to 'src/server')
-rw-r--r--src/server/index.ts7
-rw-r--r--src/server/server_Initialization.ts10
-rw-r--r--src/server/websocket.ts15
3 files changed, 17 insertions, 15 deletions
diff --git a/src/server/index.ts b/src/server/index.ts
index ff74cfb33..590affd06 100644
--- a/src/server/index.ts
+++ b/src/server/index.ts
@@ -5,7 +5,7 @@ import * as path from 'path';
import { Database } from './database';
import { DashUploadUtils } from './DashUploadUtils';
import RouteSubscriber from './RouteSubscriber';
-import initializeServer from './server_Initialization';
+import initializeServer, { resolvedPorts } from './server_Initialization';
import RouteManager, { Method, _success, _permission_denied, _error, _invalid, PublicHandler } from './RouteManager';
import * as qs from 'query-string';
import UtilManager from './ApiManagers/UtilManager';
@@ -95,6 +95,11 @@ function routeSetter({ isRelease, addSupervisedRoute, logRegistrationOutcome }:
secureHandler: ({ res }) => res.send(true)
});
+ addSupervisedRoute({
+ method: Method.GET,
+ subscription: "/resolvedPorts",
+ secureHandler: ({ res }) => res.send(resolvedPorts)
+ });
const serve: PublicHandler = ({ req, res }) => {
const detector = new mobileDetect(req.headers['user-agent'] || "");
diff --git a/src/server/server_Initialization.ts b/src/server/server_Initialization.ts
index 8f4d17f22..b5b114933 100644
--- a/src/server/server_Initialization.ts
+++ b/src/server/server_Initialization.ts
@@ -32,7 +32,7 @@ import { SSL } from './apis/google/CredentialsLoader';
export type RouteSetter = (server: RouteManager) => void;
export let disconnect: Function;
-export let resolvedPorts: { server: number, socket: number };
+export let resolvedPorts: { server: number, socket: number } = { server: 1050, socket: 4321 };
export default async function InitializeServer(routeSetter: RouteSetter) {
const app = buildWithMiddleware(express());
@@ -58,18 +58,16 @@ export default async function InitializeServer(routeSetter: RouteSetter) {
let server: HttpServer | HttpsServer;
const { serverPort } = process.env;
- resolvedPorts.server = isRelease && serverPort ? Number(serverPort) : 1050;
+ isRelease && serverPort && (resolvedPorts.server = Number(serverPort));
await new Promise<void>(resolve => server = isRelease ?
createServer(SSL.Credentials, app).listen(resolvedPorts.server, resolve) :
- app.listen(resolvedPorts, resolve)
+ app.listen(resolvedPorts.server, resolve)
);
logPort("server", resolvedPorts.server);
// initialize the web socket (bidirectional communication: if a user changes
// a field on one client, that change must be broadcast to all other clients)
- resolvedPorts.socket = await WebSocket.initialize(isRelease, app);
-
- app.get("/resolvedPorts", (_req, res) => res.send(resolvedPorts));
+ await WebSocket.initialize(isRelease, app);
disconnect = async () => new Promise<Error>(resolve => server.close(resolve));
return isRelease;
diff --git a/src/server/websocket.ts b/src/server/websocket.ts
index b99a463d4..d55c2e198 100644
--- a/src/server/websocket.ts
+++ b/src/server/websocket.ts
@@ -16,6 +16,7 @@ import executeImport from "../scraping/buxton/final/BuxtonImporter";
import { DocumentsCollection } from "./IDatabase";
import { createServer, Server } from "https";
import * as express from "express";
+import { resolvedPorts } from './server_Initialization';
export namespace WebSocket {
@@ -23,21 +24,21 @@ export namespace WebSocket {
const clients: { [key: string]: Client } = {};
export const socketMap = new Map<SocketIO.Socket, string>();
export let disconnect: Function;
- const defaultPort = 4321;
export async function initialize(isRelease: boolean, app: express.Express) {
let io: sio.Server;
- let resolved: number;
if (isRelease) {
const { socketPort } = process.env;
- resolved = socketPort ? Number(socketPort) : defaultPort;
+ if (socketPort) {
+ resolvedPorts.socket = Number(socketPort);
+ }
let socketEndpoint: Server;
- await new Promise<void>(resolve => socketEndpoint = createServer(SSL.Credentials, app).listen(resolved, resolve));
+ await new Promise<void>(resolve => socketEndpoint = createServer(SSL.Credentials, app).listen(resolvedPorts.socket, resolve));
io = sio(socketEndpoint!, SSL.Credentials as any);
} else {
- io = sio().listen(resolved = defaultPort);
+ io = sio().listen(resolvedPorts.socket);
}
- logPort("websocket", resolved);
+ logPort("websocket", resolvedPorts.socket);
console.log();
io.on("connection", function (socket: Socket) {
@@ -137,8 +138,6 @@ export namespace WebSocket {
socket.disconnect(true);
};
});
-
- return resolved;
}
function processGesturePoints(socket: Socket, content: GestureContent) {