-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserver.js
50 lines (42 loc) · 1.92 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
// import dependencies
const net = require('net');
const express = require('express');
const cookieParser = require('cookie-parser');
// import utils
const pretty = require('./components/utils/pretty.js');
// load configuration files
global.config_costs = require("./configs/costs.json");
global.config_database = require("./configs/database.json");
global.config_items = require("./configs/items.json");
global.config_server = require("./configs/server.json");
// import servers + initialize database
const { HTMLServer } = require('./components/server/http.js');
const { TCPServer } = require('./components/server/tcp.js');
const { initialize } = require('./components/server/database.js');
initialize();
// import middlewares
const { registerUserMiddleware } = require('./components/account/create.js');
const { loginGuestUserMiddleware } = require('./components/account/guest.js');
const { hostDetailsMiddleware } = require('./components/details/host.js');
// allocate the body parsers (BEFORE routing)
global.body_parser = require('body-parser');
require('body-parser-xml')(global.body_parser);
// create the app (& html server)
const app = express();
const htmlServer = new HTMLServer(app);
app.listen(config_server['port'], config_server['host'], () => {
pretty.print(`HTML server started on http://${config_server['host']}:${config_server['port']}.`);
});
// create the tpc server
const tcpServer = new TCPServer();
tcpServer.use(registerUserMiddleware, 'u_reg'); // Register User Account
tcpServer.use(loginGuestUserMiddleware, 'a_lgu'); // Login Guest User
tcpServer.use(hostDetailsMiddleware, 'a_gsd'); // Get Host Details
tcpServer.listen(config_server['tcp_port'], config_server['host'], () => {
pretty.print('TCP server started on ' + config_server['host'] + ':' + config_server['tcp_port']);
});
// log http requests
app.use((req, res, next) => {
pretty.request(req.method, req.headers['user-agent'], req.ip, req.url);
next();
});