Make it so that the events actually register properly
This commit is contained in:
parent
1e65515009
commit
2ee16b2b8a
1 changed files with 11 additions and 31 deletions
|
|
@ -1,45 +1,25 @@
|
|||
import { WebsocketEvent } from "./types/WebsocketEvent";
|
||||
import { log, config } from "./main";
|
||||
import { Server } from "socket.io";
|
||||
import { Status } from "common";
|
||||
import glob from "glob";
|
||||
import path from "path";
|
||||
|
||||
// Event imports
|
||||
import Ping from "./events/ping";
|
||||
import ServerInfo from "./events/server_info";
|
||||
import CreateLobby from "./events/lobby/create";
|
||||
|
||||
export default async function() {
|
||||
log.info("Starting socket.io server...");
|
||||
|
||||
let events: WebsocketEvent[] = [];
|
||||
let eventFiles = glob.sync(
|
||||
"events/**/!(*.map)",
|
||||
{ cwd: __dirname, nodir: true }
|
||||
);
|
||||
for (var eventFile of eventFiles) {
|
||||
let event = (await import(path.join(__dirname, eventFile))).default;
|
||||
log.info(`Identified event "${event.name}" from: ${eventFile}`);
|
||||
events.push(event);
|
||||
};
|
||||
|
||||
const io = new Server();
|
||||
|
||||
io.on("connection", (socket) => {
|
||||
log.debug(`Socket connected with ID: ${socket.id}`);
|
||||
|
||||
for (var event of events) {
|
||||
socket.on(
|
||||
event.name,
|
||||
(data: any) => {
|
||||
try {
|
||||
event.handler(io, socket, data)
|
||||
} catch (e) {
|
||||
log.error(e);
|
||||
socket.emit("res:error", {
|
||||
status: Status.UnknownError,
|
||||
message: "An unexpected error occured."
|
||||
});
|
||||
};
|
||||
}
|
||||
);
|
||||
};
|
||||
// Metadata Events
|
||||
socket.on(Ping.name, (data) => Ping.handler(io, socket, data));
|
||||
socket.on(ServerInfo.name, (data) => ServerInfo.handler(io, socket, data));
|
||||
|
||||
// Lobby Management Events
|
||||
socket.on(CreateLobby.name, (data) => CreateLobby.handler(io, socket, data));
|
||||
});
|
||||
|
||||
io.listen(config.server.port, {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue