vybe/index.js

49 lines
998 B
JavaScript
Raw Normal View History

2023-05-05 19:33:05 -07:00
const express = require("express");
const http = require("http");
const { Server } = require("socket.io");
2023-05-29 18:08:20 -07:00
const compression = require("compression");
2023-05-08 21:40:16 -07:00
2023-12-28 12:59:17 -08:00
const events = Object.fromEntries(
[
'create_user',
'get_history',
'send_message',
'authenticate',
'create_thread',
'list_threads',
'get_keys',
].map(event => [event, require('./src/' + event)])
2023-12-28 12:59:17 -08:00
);
2023-07-30 18:06:21 -07:00
2023-05-08 21:40:16 -07:00
const app = express();
2023-05-29 18:08:20 -07:00
app.use(compression());
2023-05-08 21:40:16 -07:00
const server = http.createServer(app);
2023-05-05 19:33:05 -07:00
const io = new Server(server, {
2023-07-30 18:06:21 -07:00
cors: {
origin: true,
},
2023-05-05 19:33:05 -07:00
});
const PORT = process.env.PORT || 3435;
2023-05-28 14:56:08 -07:00
io.cache = {};
2023-05-05 19:33:05 -07:00
io.on("connection", (socket) => {
2023-07-30 18:06:21 -07:00
for (let event in events) {
socket.on(event, (msg, callback) =>
events[event](msg, callback, socket, io)
);
}
2023-12-28 11:54:16 -08:00
socket.on('disconnect', reason => {
let sockets = io.cache[socket.username];
if (sockets)
sockets.splice(sockets.indexOf(socket.id), 1);
})
2023-05-05 19:33:05 -07:00
});
server.listen(PORT, () => {
2023-07-30 18:06:21 -07:00
console.log("server running on port " + PORT);
2023-05-05 19:33:05 -07:00
});
2023-05-06 20:55:04 -07:00
2023-05-07 18:43:57 -07:00
app.use(express.static("client"));