-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.ts
More file actions
39 lines (33 loc) · 1.18 KB
/
app.ts
File metadata and controls
39 lines (33 loc) · 1.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import "reflect-metadata";
import { createExpressServer } from "routing-controllers";
import { StocksController } from "./controllers/stocksController";
import { StocksPortfolioController } from './controllers/stocksPortfolioController';
import { sequelize } from "./data/db.connection";
import { GenerateStocks } from "./generateStocks";
let socket;
const PORT = process.env.PORT || 4040;
const HOST = process.env.HOST || 'localhost';
const app = createExpressServer({
cors: true,
classTransformer: false,
controllers: [StocksController, StocksPortfolioController]
});
(async () => {
await sequelize.sync();
console.info('Sequelize synced');
await GenerateStocks.initStocks();
const server = await app.listen(PORT, HOST, function (err: any) {
if (err) return err;
console.log('Express server listening on port ' + PORT);
});
const io = require('socket.io').listen(server);
io.on('connection', x => {
console.log('a user connected');
socket = x;
setInterval(() => GenerateStocks.newPrice(socket), 5000);
});
io.on('disconnect', () => {
console.log('user disconnected');
socket = null;
});
})()