Refactor SocketUser class location and update imports; add new ClientHandler for game management
This commit is contained in:
37
backend/src/SocketIO/GameManager/ClientHandler.js
Normal file
37
backend/src/SocketIO/GameManager/ClientHandler.js
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
const socketIO = require("socket.io");
|
||||||
|
const SocketUser = require("../Classes/SocketUser");
|
||||||
|
const LobbyManager = require("../LobbyManager/LobbyManager");
|
||||||
|
|
||||||
|
class ClientHandler {
|
||||||
|
/** @param {socketIO.Socket} socket @param {LobbyManager} lobbyManager */
|
||||||
|
constructor(socket, lobbyManager) {
|
||||||
|
this.socket = socket;
|
||||||
|
this.lobbyManager = lobbyManager;
|
||||||
|
|
||||||
|
this.user = new SocketUser(
|
||||||
|
this.socket.request.session.user.id,
|
||||||
|
this.socket.request.session.user.username,
|
||||||
|
this.socket
|
||||||
|
);
|
||||||
|
|
||||||
|
this.socket.on("disconnect", () => { this.defaultDisconnect() })
|
||||||
|
|
||||||
|
this.checkForLobby();
|
||||||
|
}
|
||||||
|
|
||||||
|
checkForLobby(){
|
||||||
|
const isUserInLobby = this.lobbyManager.oldLobbys.some((lobby) =>
|
||||||
|
lobby.users.some((user) => user.id === this.user.id)
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!isUserInLobby) {
|
||||||
|
this.socket.disconnect();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
defaultDisconnect(){
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = ClientHandler;
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
const socketIO = require("socket.io");
|
const socketIO = require("socket.io");
|
||||||
const SocketUser = require("./SocketUser");
|
const SocketUser = require("../../Classes/SocketUser");
|
||||||
const LobbyManager = require("../LobbyManager");
|
const LobbyManager = require("../LobbyManager");
|
||||||
const TemporaryLobby = require("./TemporaryLobby");
|
const TemporaryLobby = require("./TemporaryLobby");
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
|
const { Socket } = require("socket.io");
|
||||||
const LobbyManager = require("../LobbyManager");
|
const LobbyManager = require("../LobbyManager");
|
||||||
|
const SocketUser = require("../../Classes/SocketUser");
|
||||||
|
|
||||||
class TemporaryLobby{
|
class TemporaryLobby{
|
||||||
/** @param { string } code @param {Array<SocketUser>} users @param {LobbyManager} lobbyManager*/
|
/** @param { string } code @param {Array<SocketUser>} users @param {LobbyManager} lobbyManager*/
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
const socketIO = require("socket.io");
|
const socketIO = require("socket.io");
|
||||||
const LobbyManager = require("./LobbyManager");
|
const LobbyManager = require("./LobbyManager");
|
||||||
const SocketUser = require("./Classes/SocketUser");
|
const SocketUser = require("../Classes/SocketUser");
|
||||||
|
|
||||||
class ClientHandler {
|
class ClientHandler {
|
||||||
/** @param {socketIO.Socket} socket @param {LobbyManager} lobbyManager */
|
/** @param {socketIO.Socket} socket @param {LobbyManager} lobbyManager */
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
const socketIO = require("socket.io");
|
const socketIO = require("socket.io");
|
||||||
const Lobby = require("./Classes/Lobby");
|
const Lobby = require("./Classes/Lobby");
|
||||||
const SocketUser = require("./Classes/SocketUser");
|
const SocketUser = require("../Classes/SocketUser");
|
||||||
const TemporaryLobby = require("./Classes/TemporaryLobby");
|
const TemporaryLobby = require("./Classes/TemporaryLobby");
|
||||||
|
|
||||||
class LobbyManager {
|
class LobbyManager {
|
||||||
|
|||||||
@@ -3,7 +3,8 @@ const http = require("http");
|
|||||||
const DataBaseManager = require("../Database/DataBaseManager");
|
const DataBaseManager = require("../Database/DataBaseManager");
|
||||||
const ExpressManager = require("../Express/ExpressManager");
|
const ExpressManager = require("../Express/ExpressManager");
|
||||||
const LobbyManager = require("./LobbyManager/LobbyManager");
|
const LobbyManager = require("./LobbyManager/LobbyManager");
|
||||||
const ClientHandler = require("./LobbyManager/ClientHandler");
|
const ClientHandlerLobby = require("./LobbyManager/ClientHandler");
|
||||||
|
const ClientHandlerGame = require("./GameManager/ClientHandler");
|
||||||
require("dotenv").config();
|
require("dotenv").config();
|
||||||
|
|
||||||
class SocketIOManager {
|
class SocketIOManager {
|
||||||
@@ -27,7 +28,6 @@ class SocketIOManager {
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
Der LobbyManager kümmert sich um alle Lobbys
|
Der LobbyManager kümmert sich um alle Lobbys
|
||||||
Der LobbyHandler kümmert sich um die einzelnen Anfragen der Clients
|
|
||||||
*/
|
*/
|
||||||
this.lobbyManager = new LobbyManager(this.io);
|
this.lobbyManager = new LobbyManager(this.io);
|
||||||
|
|
||||||
@@ -61,7 +61,11 @@ class SocketIOManager {
|
|||||||
});
|
});
|
||||||
|
|
||||||
socket.on("hereForLobby", () => {
|
socket.on("hereForLobby", () => {
|
||||||
new ClientHandler(socket, this.lobbyManager);
|
new ClientHandlerLobby(socket, this.lobbyManager);
|
||||||
|
});
|
||||||
|
|
||||||
|
socket.on("hereForGame", () => {
|
||||||
|
new ClientHandlerGame(socket, this.lobbyManager);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,12 +15,12 @@ class ServerConnectionManager {
|
|||||||
|
|
||||||
this.socket.on("connect_error", (error) => {
|
this.socket.on("connect_error", (error) => {
|
||||||
console.log(error);
|
console.log(error);
|
||||||
window.location.pathname = "/dashboard";
|
window.location.pathname = "/dashboard/lobby";
|
||||||
});
|
});
|
||||||
|
|
||||||
this.socket.on("disconnect", () => {
|
this.socket.on("disconnect", () => {
|
||||||
console.log("Die verbindung wurde unterbrochen!");
|
console.log("Die verbindung wurde unterbrochen!");
|
||||||
window.location.pathname = "/dashboard";
|
window.location.pathname = "/dashboard/lobby";
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user