aboutsummaryrefslogtreecommitdiff
path: root/src/server/websocket.ts
diff options
context:
space:
mode:
authorbobzel <zzzman@gmail.com>2020-05-17 23:38:21 +0000
committerbobzel <zzzman@gmail.com>2020-05-17 23:38:21 +0000
commitb24fd078149d8ee9042a279cbe7498f6c3f5c82f (patch)
treec3a74a386f0f6747ca12229d2d6dcc3e5895bfa2 /src/server/websocket.ts
parent9c3d461a9642a4596c55f642af2b55e186b0fe20 (diff)
release server integration with ssl
Diffstat (limited to 'src/server/websocket.ts')
-rw-r--r--src/server/websocket.ts36
1 files changed, 24 insertions, 12 deletions
diff --git a/src/server/websocket.ts b/src/server/websocket.ts
index 9ab3d2611..1abfe2327 100644
--- a/src/server/websocket.ts
+++ b/src/server/websocket.ts
@@ -1,18 +1,21 @@
+import * as fs from 'fs';
+import { logPort } from './ActionUtilities';
import { Utils } from "../Utils";
import { MessageStore, Transferable, Types, Diff, YoutubeQueryInput, YoutubeQueryTypes, GestureContent, MobileInkOverlayContent, UpdateMobileInkOverlayPositionContent, MobileDocumentUploadContent, RoomMessage } from "./Message";
import { Client } from "./Client";
import { Socket } from "socket.io";
import { Database } from "./database";
import { Search } from "./Search";
-import * as io from 'socket.io';
+import * as sio from 'socket.io';
import YoutubeApi from "./apis/youtube/youtubeApiSample";
-import { GoogleCredentialsLoader } from "./apis/google/CredentialsLoader";
-import { logPort } from "./ActionUtilities";
+import { GoogleCredentialsLoader, SSLCredentialsLoader } from "./apis/google/CredentialsLoader";
import { timeMap } from "./ApiManagers/UserManager";
import { green } from "colors";
import { networkInterfaces } from "os";
import executeImport from "../scraping/buxton/final/BuxtonImporter";
import { DocumentsCollection } from "./IDatabase";
+import { createServer } from "https";
+import * as express from "express";
export namespace WebSocket {
@@ -20,12 +23,26 @@ export namespace WebSocket {
const clients: { [key: string]: Client } = {};
export const socketMap = new Map<SocketIO.Socket, string>();
export let disconnect: Function;
+ const defaultPort = 4321;
- export function initialize(isRelease: boolean) {
- const endpoint = io();
- endpoint.on("connection", function (socket: Socket) {
- _socket = socket;
+ export function initialize(isRelease: boolean, app: express.Express) {
+ let io: sio.Server;
+ const log = (port: number) => {
+ logPort("websocket", port);
+ console.log();
+ }
+ if (isRelease) {
+ const { socketPort } = process.env;
+ const resolved = socketPort ? Number(socketPort) : defaultPort;
+ const socketEndpoint = createServer(SSLCredentialsLoader.Credentials, app).listen(resolved, () => log(resolved));
+ io = sio(socketEndpoint, SSLCredentialsLoader.Credentials as any);
+ } else {
+ io = sio().listen(defaultPort);
+ log(defaultPort);
+ }
+ io.on("connection", function (socket: Socket) {
+ _socket = socket;
socket.use((_packet, next) => {
const userEmail = socketMap.get(socket);
if (userEmail) {
@@ -121,11 +138,6 @@ export namespace WebSocket {
socket.disconnect(true);
};
});
-
- const { socketPort } = process.env;
- const resolved = isRelease && socketPort ? Number(socketPort) : 4321;
- endpoint.listen(resolved);
- logPort("websocket", resolved);
}
function processGesturePoints(socket: Socket, content: GestureContent) {