Renaming files

This commit is contained in:
sairajzero 2021-07-17 19:10:05 +05:30
parent cd16e8aa67
commit 71846daf8a
3 changed files with 72 additions and 58 deletions

View File

@ -1,65 +1,79 @@
const http = require('http') const http = require('http')
const WebSocket = require('ws') const WebSocket = require('ws')
const supernode = require('./supernode')
const backupProcess = require('./backupProcess')
const port = 8080;
const server = http.createServer((req, res) => { const Server = module.exports = function(port, client, intra){
if (req.method === "GET") { const server = http.createServer((req, res) => {
//GET request (requesting data) if (req.method === "GET") {
req.on('end', () => { //GET request (requesting data)
let i = req.url.indexOf("?"); req.on('end', () => {
if (i) { let i = req.url.indexOf("?");
var request = JSON.parse(req.url.substring(i)); if (i) {
supernode.processRequestFromUser(request) var request = JSON.parse(req.url.substring(i));
.then(result => res.end(JSON.parse(result[0]))) client.processRequestFromUser(request)
.catch(error => res.end(error)) .then(result => res.end(JSON.parse(result[0])))
} .catch(error => res.end(error))
})
}
if (req.method === "POST") {
let data = '';
req.on('data', chunk => data += chunk)
req.on('end', () => {
console.log(data);
//process the data storing
supernode.processIncomingData(data).then(result => {
res.end(result[0]);
if (result[1]) {
if (result[1] === 'DATA')
sendToLiveRequests(result[0])
backupProcess.forwardToNextNode(result[1], result[0])
} }
}).catch(error => res.end(error)) })
})
}
});
server.listen(port, () => {
console.log(`Server running at port ${port}`)
})
const wsServer = new WebSocket.Server({
server
});
wsServer.on('connection', function connection(ws) {
ws.onmessage = function(evt) {
let message = evt.data;
if (message.startsWith(backupProcess.SUPERNODE_INDICATOR))
backupProcess.processTaskFromSupernode(message, ws);
else {
var request = JSON.parse(message);
supernode.processRequestFromUser(JSON.parse(message))
.then(result => {
ws.send(JSON.parse(result[0]))
ws._liveReq = request;
}).catch(error => ws.send(error))
} }
} if (req.method === "POST") {
}); let data = '';
req.on('data', chunk => data += chunk)
function sendToLiveRequests(data) { req.on('end', () => {
wsServer.clients.forEach(ws => { console.log(data);
if (supernode.checkIfRequestSatisfy(ws._liveReq, data)) //process the data storing
ws.send(data) client.processIncomingData(data).then(result => {
res.end(result[0]);
if (result[1]) {
if (result[1] === 'DATA')
sendToLiveRequests(result[0])
intra.forwardToNextNode(result[1], result[0])
}
}).catch(error => res.end(error))
})
}
});
server.listen(port, (err) => {
if(!err)
console.log(`Server running at port ${port}`);
}) })
const wsServer = new WebSocket.Server({
server
});
wsServer.on('connection', function connection(ws) {
ws.onmessage = function(evt) {
let message = evt.data;
if (message.startsWith(intra.SUPERNODE_INDICATOR))
intra.processTaskFromSupernode(message, ws);
else {
var request = JSON.parse(message);
client.processRequestFromUser(JSON.parse(message))
.then(result => {
ws.send(JSON.parse(result[0]))
ws._liveReq = request;
}).catch(error => ws.send(error))
}
}
});
wsServer.on('connection', function connection(ws) {
ws.onmessage = function(evt) {
let message = evt.data;
if (message.startsWith(intra.SUPERNODE_INDICATOR))
intra.processTaskFromSupernode(message, ws);
else {
var request = JSON.parse(message);
client.processRequestFromUser(JSON.parse(message))
.then(result => {
ws.send(JSON.parse(result[0]))
ws._liveReq = request;
}).catch(error => ws.send(error))
}
}
});
Object.defineProperty(this, "http", {
get: () => server
});
Object.defineProperty(this, "webSocket", {
get: () => wsServer
});
} }