diff --git a/back/server.ts b/back/server.ts index 7a45a0ed..1aa51160 100644 --- a/back/server.ts +++ b/back/server.ts @@ -4,7 +4,7 @@ import grpc from "grpc"; import {roomManager} from "./src/RoomManager"; import {IRoomManagerServer, RoomManagerService} from "./src/Messages/generated/messages_grpc_pb"; -//App.listen(8080, () => console.log(`WorkAdventure starting on port 8080!`)) +App.listen(8080, () => console.log(`WorkAdventure starting on port 8080!`)) const server = new grpc.Server(); server.addService(RoomManagerService, roomManager); diff --git a/back/src/App.ts b/back/src/App.ts index 42659aad..9bd4a4ce 100644 --- a/back/src/App.ts +++ b/back/src/App.ts @@ -1,5 +1,4 @@ // lib/app.ts -import {IoSocketController} from "./Controller/IoSocketController"; //TODO fix import by "_Controller/..." import {AuthenticateController} from "./Controller/AuthenticateController"; //TODO fix import by "_Controller/..." import {MapController} from "./Controller/MapController"; import {PrometheusController} from "./Controller/PrometheusController"; @@ -9,10 +8,9 @@ import {App as uwsApp} from "./Server/sifrr.server"; class App { public app: uwsApp; - public ioSocketController: IoSocketController; - public authenticateController: AuthenticateController; - public fileController: FileController; - public mapController: MapController; + //public authenticateController: AuthenticateController; + //public fileController: FileController; + //public mapController: MapController; public prometheusController: PrometheusController; private debugController: DebugController; @@ -20,10 +18,9 @@ class App { this.app = new uwsApp(); //create socket controllers - this.ioSocketController = new IoSocketController(this.app); - this.authenticateController = new AuthenticateController(this.app); - this.fileController = new FileController(this.app); - this.mapController = new MapController(this.app); + //this.authenticateController = new AuthenticateController(this.app); + //this.fileController = new FileController(this.app); + //this.mapController = new MapController(this.app); this.prometheusController = new PrometheusController(this.app); this.debugController = new DebugController(this.app); } diff --git a/back/src/Controller/DebugController.ts b/back/src/Controller/DebugController.ts index af2db139..a94cc616 100644 --- a/back/src/Controller/DebugController.ts +++ b/back/src/Controller/DebugController.ts @@ -1,10 +1,10 @@ import {ADMIN_API_TOKEN} from "../Enum/EnvironmentVariable"; -import {IoSocketController} from "_Controller/IoSocketController"; import {stringify} from "circular-json"; import {HttpRequest, HttpResponse} from "uWebSockets.js"; import { parse } from 'query-string'; import {App} from "../Server/sifrr.server"; import {socketManager} from "../Services/SocketManager"; +import {ServerWritableStream} from "grpc"; export class DebugController { constructor(private App : App) { @@ -23,6 +23,15 @@ export class DebugController { return res.writeStatus('200 OK').writeHeader('Content-Type', 'application/json').end(stringify( socketManager.getWorlds(), (key: unknown, value: unknown) => { + if (key === 'listeners') { + return 'Listeners'; + } + if (key === 'socket') { + return 'Socket'; + } + if (key === 'batchedMessages') { + return 'BatchedMessages'; + } if(value instanceof Map) { const obj: any = {}; // eslint-disable-line @typescript-eslint/no-explicit-any for (const [mapKey, mapValue] of value.entries()) { diff --git a/pusher/src/Services/SocketManager.ts b/pusher/src/Services/SocketManager.ts index 209e599e..c8f7d08e 100644 --- a/pusher/src/Services/SocketManager.ts +++ b/pusher/src/Services/SocketManager.ts @@ -95,10 +95,9 @@ export class SocketManager implements ZoneEventListener { const position = client.position; const viewport = client.viewport; try { - // TODO: do we need this.sockets anymore? - this.sockets.set(client.userId, client); //todo: should this be at the end of the function? const joinRoomMessage = new JoinRoomMessage(); + joinRoomMessage.setUseruuid(client.userUuid); joinRoomMessage.setRoomid(client.roomId); joinRoomMessage.setName(client.name); joinRoomMessage.setPositionmessage(ProtobufUtils.toPositionMessage(client.position)); @@ -121,6 +120,10 @@ export class SocketManager implements ZoneEventListener { streamToPusher.on('data', (message: ServerToClientMessage) => { if (message.hasRoomjoinedmessage()) { + client.userId = (message.getRoomjoinedmessage() as RoomJoinedMessage).getCurrentuserid(); + // TODO: do we need this.sockets anymore? + this.sockets.set(client.userId, client); + // If this is the first message sent, send back the viewport. this.handleViewport(client, viewport); }