BlogSharer/exposer.js

52 lines
1.1 KiB
JavaScript

const express = require("express"),
paths = require("./fileManager.js")
path = require("path"),
fs = require("fs"),
WebSocket = require("ws")
const PORT = process.env.PORT || 8080
var app = express()
app.use(express.static(paths.data))
var sockets = []
wsServer = WebSocket.Server;
let server = require('http').createServer()
wsServer = new wsServer({
server: server,
perMessageDeflate: false
})
server.on('request', app)
wsServer.on("connection", function connection(socket) {
socket.on('message', function message(data) {
data = JSON.parse(data)
if (data.type == "ping") {
for (let index = 0; index < sockets.length; index++) {
const socketData = sockets[index];
if (socketData.socket == socket) {
sockets[index].lastPing = Date.now()
}
}
socket.send(`{"op": 3}`)
} else {
console.log(data)
}
})
sockets.push({ socket, lastPing: Date.now() })
})
server.listen(PORT, function () {
console.log("Blog API and WebSocket on port: " + PORT)
})
module.exports = {
app: app
}
require("./api.js")