Getting rid of roomId in Message class (this is not needed since all messages sent are for the room we are currently in)

This commit is contained in:
David Négrier 2020-05-16 00:19:27 +02:00
parent 4d1c3517ec
commit 3b6ace03fa
5 changed files with 13 additions and 35 deletions

View file

@ -361,12 +361,12 @@ export class IoSocketController {
character: Client.character, character: Client.character,
}; };
let messageUserPosition = new MessageUserPosition(data); let messageUserPosition = new MessageUserPosition(data);
let world = this.Worlds.get(messageUserPosition.roomId); let world = this.Worlds.get(Client.roomId);
if (!world) { if (!world) {
return; return;
} }
world.updatePosition(Client, messageUserPosition.position); world.updatePosition(Client, messageUserPosition.position);
this.Worlds.set(messageUserPosition.roomId, world); this.Worlds.set(Client.roomId, world);
} }
//Hydrate and manage error //Hydrate and manage error

View file

@ -23,19 +23,18 @@ let RefreshUserPositionFunction = function(rooms : ExtRooms, Io: socketIO.Server
} }
let data = { let data = {
userId: socket.id, userId: socket.id,
roomId: socket.roomId,
position: socket.position, position: socket.position,
name: socket.name, name: socket.name,
character: socket.character, character: socket.character,
}; };
let dataArray = <any>[]; let dataArray = <any>[];
if (mapPositionUserByRoom.get(data.roomId)) { if (mapPositionUserByRoom.get(socket.roomId)) {
dataArray = mapPositionUserByRoom.get(data.roomId); dataArray = mapPositionUserByRoom.get(socket.roomId);
dataArray.push(data); dataArray.push(data);
} else { } else {
dataArray = [data]; dataArray = [data];
} }
mapPositionUserByRoom.set(data.roomId, dataArray); mapPositionUserByRoom.set(socket.roomId, dataArray);
} }
rooms.userPositionMapByRoom = Array.from(mapPositionUserByRoom); rooms.userPositionMapByRoom = Array.from(mapPositionUserByRoom);
}; };

View file

@ -1,16 +1,14 @@
export class Message { export class Message {
userId: string; userId: string;
roomId: string;
name: string; name: string;
character: string; character: string;
constructor(data: any) { constructor(data: any) {
if (!data.userId || !data.roomId) { if (!data.userId) {
console.error("Got invalid message", data); console.error("Got invalid message", data);
throw Error("userId or roomId cannot be null"); throw Error("userId cannot be null");
} }
this.userId = data.userId; this.userId = data.userId;
this.roomId = data.roomId;
this.name = data.name; this.name = data.name;
this.character = data.character; this.character = data.character;
} }

View file

@ -3,32 +3,17 @@ import {Message} from "../src/Model/Websocket/Message";
describe("Message Model", () => { describe("Message Model", () => {
it("should find userId and roomId", () => { it("should find userId and roomId", () => {
let message = {userId: "test1", roomId: "test2", name: "foo", character: "user"}; let message = {userId: "test1", name: "foo", character: "user"};
let messageObject = new Message(message); let messageObject = new Message(message);
expect(messageObject.userId).toBe("test1"); expect(messageObject.userId).toBe("test1");
expect(messageObject.roomId).toBe("test2");
expect(messageObject.name).toBe("foo"); expect(messageObject.name).toBe("foo");
expect(messageObject.character).toBe("user"); expect(messageObject.character).toBe("user");
}) })
it("should find throw error when no userId", () => { it("should find throw error when no userId", () => {
let message = {roomId: "test2"}; let message = {};
expect(() => { expect(() => {
let messageObject = new Message(message); let messageObject = new Message(message);
}).toThrow(new Error("userId or roomId cannot be null")); }).toThrow(new Error("userId cannot be null"));
});
it("should find throw error when no roomId", () => {
let message = {userId: "test1"};
expect(() => {
let messageObject = new Message(message);
}).toThrow(new Error("userId or roomId cannot be null"));
});
it("should find throw error when no roomId", () => {
let message = {name: "foo"};
expect(() => {
let messageObject = new Message(message);
}).toThrow(new Error("userId or roomId cannot be null"));
}); });
}) })

View file

@ -26,13 +26,11 @@ enum EventMessage{
class Message { class Message {
userId: string; userId: string;
roomId: string;
name: string; name: string;
character: string; character: string;
constructor(userId : string, roomId : string, name: string, character: string) { constructor(userId : string, name: string, character: string) {
this.userId = userId; this.userId = userId;
this.roomId = roomId;
this.name = name; this.name = name;
this.character = character; this.character = character;
} }
@ -61,7 +59,6 @@ class Point implements PointInterface{
export interface MessageUserPositionInterface { export interface MessageUserPositionInterface {
userId: string; userId: string;
roomId: string;
name: string; name: string;
character: string; character: string;
position: PointInterface; position: PointInterface;
@ -70,8 +67,8 @@ export interface MessageUserPositionInterface {
class MessageUserPosition extends Message implements MessageUserPositionInterface{ class MessageUserPosition extends Message implements MessageUserPositionInterface{
position: PointInterface; position: PointInterface;
constructor(userId : string, roomId : string, point : Point, name: string, character: string) { constructor(userId : string, point : Point, name: string, character: string) {
super(userId, roomId, name, character); super(userId, name, character);
this.position = point; this.position = point;
} }
} }
@ -91,7 +88,6 @@ class ListMessageUserPosition {
data.forEach((userPosition: any) => { data.forEach((userPosition: any) => {
this.listUsersPosition.push(new MessageUserPosition( this.listUsersPosition.push(new MessageUserPosition(
userPosition.userId, userPosition.userId,
userPosition.roomId,
new Point( new Point(
userPosition.position.x, userPosition.position.x,
userPosition.position.y, userPosition.position.y,