-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathserver.js
73 lines (66 loc) · 2.11 KB
/
server.js
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
const express = require('express');
require('dotenv').config();
const connectDb = require('./db/dbconnect');
const { createServer } = require('http');
const multer = require('multer');
const socketio = require('./socket');
const swaggerUi = require('swagger-ui-express');
const swaggerDoc = require('./documentation/swaggerSetup');
const app = express();
const server = createServer(app);
const io = socketio.init(server);
const adIo = socketio.initAdIo(server, '/socket/adpage');
const upload = multer({ dest: 'uploads/' });
// Body parser
app.use(express.json());
// CORS
app.use((req, res, next) => {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Methods', 'OPTIONS, GET, POST, PUT, PATCH, DELETE');
res.setHeader('Access-Control-Allow-Headers', '*');
next();
});
// Documentation setup
app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDoc));
// Default route
app.get('/', (req, res, next) => {
res.send('Server running');
});
// Routes
app.use('/auth', require('./routes/auth'));
app.use('/user', require('./routes/user'));
app.use('/ad', require('./routes/ad'));
app.use('/bid', require('./routes/bid'));
app.use('/room', require('./routes/room'));
app.use('/auction', require('./routes/auction'));
app.use('/upload', require('./routes/uploads'));
// Socket.io setup
const PORT = process.env.PORT || 5000;
io.on('connection', (socket) => {
// console.log('### Socket IO client connected');
socket.on('disconnect', (reason) => {
// console.log('### Socket IO client disconnected');
});
socket.on('leaveHome', () => {
socket.disconnect();
});
});
adIo.on('connect', (socket) => {
// socket.join('testroom')
socket.on('joinAd', ({ ad }) => {
socket.join(ad.toString());
// console.log(`User joined room ${ad}`);
});
socket.on('leaveAd', ({ ad }) => {
socket.leave(ad.toString());
// console.log(`Left room ${ad}`);
});
socket.on('disconnect', () => {
// console.log('User has disconnect from ad');
});
});
// Connect DB and Initialize server
connectDb();
server.listen(PORT, () => {
console.log(`### Server running on port ${PORT}`);
});