Refactor websocket into separate services, clean up socket status communication (#4433)

* Refactor websocket into separate services, clean up socket status communication

* cleanup

* add EOF lines

* fix keepalive logged in check

* undo change

* fix keepalive connection check

* cleanup

* add typings

* secure connection

Co-authored-by: Jeremy Letto <jeremy.letto@datasite.com>
This commit is contained in:
Jeremy Letto
2021-10-17 00:07:30 -05:00
committed by GitHub
parent 19333c53f6
commit e9ba195d7d
52 changed files with 815 additions and 757 deletions

View File

@@ -1,20 +1,22 @@
import { StatusEnum } from "types";
import { webClient } from "websocket";
import { ServerConnectParams } from "store";
import { StatusEnum, User} from "types";
import { webClient, SessionCommands } from "websocket";
export default class AuthenticationService {
static connect(options) {
webClient.persistence.session.connectServer(options);
}
static disconnect() {
webClient.persistence.session.disconnectServer();
static connect(options: ServerConnectParams): void {
SessionCommands.connect(options);
}
static isConnected(state) {
static disconnect(): void {
SessionCommands.disconnect();
}
static isConnected(state: number): boolean {
return state === StatusEnum.LOGGEDIN;
}
static isModerator(user) {
const moderatorLevel = webClient.pb.ServerInfo_User.UserLevelFlag.IsModerator;
static isModerator(user: User): boolean {
const moderatorLevel = webClient.protobuf.controller.ServerInfo_User.UserLevelFlag.IsModerator;
// @TODO tell cockatrice not to do this so shittily
return (user.userLevel & moderatorLevel) === moderatorLevel;
}
@@ -22,4 +24,4 @@ export default class AuthenticationService {
static isAdmin() {
}
}
}

View File

@@ -1,7 +1,7 @@
import { webClient } from "websocket";
import { SessionCommands } from "websocket";
export default class ModeratorService {
static viewLogHistory(filters) {
webClient.commands.session.viewLogHistory(filters);
static viewLogHistory(filters): void {
SessionCommands.viewLogHistory(filters);
}
}
}

View File

@@ -1,15 +1,15 @@
import { webClient } from "websocket";
import { RoomCommands, SessionCommands } from "websocket";
export default class RoomsService {
static joinRoom(roomId) {
webClient.commands.session.joinRoom(roomId);
static joinRoom(roomId: number): void {
SessionCommands.joinRoom(roomId);
}
static leaveRoom(roomId) {
webClient.commands.room.leaveRoom(roomId);
static leaveRoom(roomId: number): void {
RoomCommands.leaveRoom(roomId);
}
static roomSay(roomId, message) {
webClient.commands.room.roomSay(roomId, message);
static roomSay(roomId: number, message: string): void {
RoomCommands.roomSay(roomId, message);
}
}
}

View File

@@ -4,4 +4,4 @@ export class RouterService {
resolveUrl(path, params) {
}
}
}

View File

@@ -1,19 +1,19 @@
import { webClient } from "websocket";
import { SessionCommands } from "websocket";
export default class SessionService {
static addToBuddyList(userName) {
webClient.commands.session.addToBuddyList(userName);
static addToBuddyList(userName: string) {
SessionCommands.addToBuddyList(userName);
}
static removeFromBuddyList(userName) {
webClient.commands.session.removeFromBuddyList(userName);
static removeFromBuddyList(userName: string) {
SessionCommands.removeFromBuddyList(userName);
}
static addToIgnoreList(userName) {
webClient.commands.session.addToIgnoreList(userName);
static addToIgnoreList(userName: string) {
SessionCommands.addToIgnoreList(userName);
}
static removeFromIgnoreList(userName) {
webClient.commands.session.removeFromIgnoreList(userName);
static removeFromIgnoreList(userName: string) {
SessionCommands.removeFromIgnoreList(userName);
}
}
}

View File

@@ -1,4 +1,4 @@
export { default as AuthenticationService } from "./AuthenticationService";
export { default as ModeratorService } from "./ModeratorService";
export { default as RoomsService } from "./RoomsService";
export { default as SessionService } from "./SessionService";
export { default as SessionService } from "./SessionService";