vybe/index.js

48 lines
1.0 KiB
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-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-12-28 12:59:17 -08: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-12-28 12:59:17 -08:00
for (let event in events) {
socket.on(event, (msg, callback) =>
events[event](msg, callback, socket, io)
);
}
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-12-28 12:59:17 -08: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"));