-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
58 lines (47 loc) · 1.78 KB
/
index.js
File metadata and controls
58 lines (47 loc) · 1.78 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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
const express = require("express");
const PORT = process.env.PORT || 3031;
const index = '/index.html';
const socketIO = require('socket.io')
const registerProcessHandler = require('./lib/handlers/processHandler')
const registerResourceHandler = require('./lib/handlers/resourceHandler')
const registerSysInfoHandler = require('./lib/handlers/sysInfoHandler')
const registerUserInfoHandler = require('./lib/handlers/userInfoHandler')
const registerAuthorizeHandler = require('./lib/handlers/authorizeHandler')
const {logger} = require('./lib/logger')
const {removeUser, users, client} = require("./lib/store");
const server = express()
.use((req, res) => res.sendFile(index, {root: __dirname}))
.listen(PORT, () => console.log(`Listening on ${PORT}`))
const io = socketIO(server, {cors: {origin: '*'}, logger: {
debug: logger.debug,
info: logger.info,
error: logger.error,
warn: logger.warn
}})
io.on('connection', (socket) => {
logger.log({
level: 'info',
message: `Socket connected with ID ${socket.id}`
})
socket.emit('users:web', {users, clientID: client})
socket.on('disconnect', () => {
logger.log({
level: 'info',
message: `Socket disconnected with ID ${socket.id}`
})
if(socket.id === client){
users.clientID = null;
}
removeUser(socket.id);
if(users.users){
users.users.forEach((u) => {
io.sockets.sockets.get(u.id).emit('users:web', users)
})
}
})
registerAuthorizeHandler(io, socket, users);
registerProcessHandler(io, socket, users);
registerResourceHandler(io, socket, users);
registerSysInfoHandler(io, socket, users);
registerUserInfoHandler(io, socket, users);
})