types.ts
806 Bytes
import { RoomData } from "../room/types";
export interface Message {
readonly type: string;
}
export class LoginMessage implements Message {
readonly type = MessageType.LOGIN;
constructor(public username: string) {}
}
export class RoomListMessage implements Message {
readonly type = MessageType.ROOM_LIST;
constructor(public rooms: RoomData[]) {}
}
export class RoomJoinMessage implements Message {
readonly type = MessageType.ROOM_JOIN;
constructor(public uuid: string) {}
}
export class RoomLeaveMessage implements Message {
readonly type = MessageType.ROOM_LEAVE;
constructor() {}
}
export class MessageType {
static readonly LOGIN = "login";
static readonly ROOM_LIST = "room_list";
static readonly ROOM_JOIN = "room_join";
static readonly ROOM_LEAVE = "room_leave";
}