/
index.js
82 lines (68 loc) · 2.33 KB
/
index.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
74
75
76
77
78
79
80
81
82
const express = require('express')
const exphbs = require('express-handlebars');
const https = require('https');
const fs = require('fs');
const path = require('path')
const app = express();
const fetch = require('node-fetch')
const port = process.env.PORT || 3000;
const server = require('http').createServer(app);
const httpsServer = https.createServer({
key: fs.readFileSync('./key.pem'),
cert: fs.readFileSync('./cert.pem'),
}, app);
//For running on Website
const io = require("socket.io")(httpsServer);
const alertsNsp = io.of('/alerts');
io.on('connection', socket => {
console.log("Inside Main IO")
socket.on("test_alert", data => {
const { pool } = require('./mysql_config/config')
let sql = `SELECT * FROM merch_alert WHERE name=?`;
pool.getConnection(function(err, connection) {
connection.query(sql, data.toString().toUpperCase(), (error, results, fields) => {
if (error) {
return console.error(error.message);
}
if(!results.length) {
console.log('Wrong Name')
}
else {
const streamer_url = results[0].complete_url;
alertsNsp.to(streamer_url).emit("order_alert", { product: "T-Shirt", name: "Customer", note: "This is the test Script BWHWHHAHAHHA SHOUTTTOUTTTTTTT" })
}
console.log(pool._freeConnections.indexOf(connection)); // -1
connection.release();
console.log(pool._freeConnections.indexOf(connection)); // 0
})
})
})
})
alertsNsp.on('connection', socket => {
console.log("Inside Alert IO")
socket.on("streamer_url", url =>{
console.log("Inside Streamer URL")
console.log(url)
socket.join(url)
});
})
//For running local
// const io = require("socket.io")(server);
app.engine('handlebars', exphbs());
app.set('view engine', 'handlebars');
app.set('socketio', io);
app.use(express.text());
app.use(express.json());
app.use(express.static(__dirname + "/public"))
app.use('/', require('./routes/base.js'))
app.use('/alerts', require('./routes/alert.js'))
app.use('/', require('./routes/webhook'))
app.use('/', require('./routes/data'))
//HTTPS for the website
httpsServer.listen(port, () => {
console.log('HTTPS Server running on port 3000');
});
// HTTP for the loca env
// server.listen(4000, () => {
// console.log(`listening on *:${4000}`);
// });