Fixing missing uuid in back

This commit is contained in:
David Négrier 2020-12-02 17:51:46 +01:00
parent 4c1e566a6c
commit 5a0dfdb1d5
4 changed files with 22 additions and 13 deletions

View File

@ -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<IRoomManagerServer>(RoomManagerService, roomManager);

View File

@ -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);
}

View File

@ -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()) {

View File

@ -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);
}