Initial move
This commit is contained in:
55
backend/src/server.ts
Normal file
55
backend/src/server.ts
Normal file
@@ -0,0 +1,55 @@
|
||||
import { app } from "./app";
|
||||
import { createServer } from "http";
|
||||
import { WebSocket, WebSocketServer } from "ws";
|
||||
import { attachEvents } from "./controllers/websocket-controller";
|
||||
import { logger } from "./globals";
|
||||
import selfSigned from "selfsigned";
|
||||
|
||||
const PORT = process.env.PORT || 3000;
|
||||
|
||||
const server = createServer(app);
|
||||
|
||||
const wss = new WebSocketServer({ server });
|
||||
|
||||
wss.on('connection', (ws: WebSocket) => {
|
||||
logger.info('Websocket client connected');
|
||||
|
||||
attachEvents(ws);
|
||||
|
||||
ws.on('message', (message: string) => {
|
||||
logger.info(`Received message: ${message}`);
|
||||
});
|
||||
|
||||
ws.on('close', () => {
|
||||
logger.info('Websocket client disconnected');
|
||||
});
|
||||
});
|
||||
|
||||
server.listen(PORT, () => {
|
||||
logger.info(`Server is running on http://localhost:${PORT}`);
|
||||
});
|
||||
|
||||
const getOrCreateCertificate = async () => {
|
||||
if (process.env.USE_SSL === '1') {
|
||||
if (!process.env.SSL_KEY || !process.env.SSL_CERT) {
|
||||
return await createSelfSignedSSLCert();
|
||||
}
|
||||
return {
|
||||
key: process.env.SSL_KEY,
|
||||
cert: process.env.SSL_CERT
|
||||
};
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
const createSelfSignedSSLCert = async () => {
|
||||
const selfsigned = await import('selfsigned');
|
||||
const pems = selfsigned.generate([{ name: 'Notebrook Self Signed Auto Generated Key', value: 'localhost' }], {
|
||||
keySize: 2048,
|
||||
days: 365
|
||||
});
|
||||
return {
|
||||
key: pems.private,
|
||||
cert: pems.cert
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user