@xmobitea/gn-server
Version:
GearN Server by XmobiTea (Pro)
59 lines (58 loc) • 2.9 kB
TypeScript
import { Server, Socket } from "socket.io";
import { Request } from "./../../GN-common/entity/operationRequest/base/Request";
import { OperationEvent } from "./../../GN-common/entity/operationEvent/OperationEvent";
import { OperationResponse } from "./../../GN-common/entity/operationResponse/OperationResponse";
import { Emitter } from "@socket.io/mongo-emitter";
import { ApiMiddleware } from "./../middleware/ApiMiddleware";
import { AntiDdosMiddleware } from "./../middleware/AntiDdosMiddleware";
import { xDatabase } from "./../../GN-library/xdatabase/lib/xDatabase";
interface OnSocketDisconnect {
(socket: Socket, data: string): void;
}
interface OnSocketRequest {
(request: Request): Promise<OperationResponse>;
}
export declare class SocketAppHandler {
private static readonly CONNECT_CMD;
private static readonly DISCONNECT_CMD;
private _onDisconnectCb;
private _onRequestCb;
private apiMiddleware;
private antiDdosMiddleware;
private enableSendAndReceiveDebug;
private enablePostViaMsgPack;
private enablePostViaJson;
private server;
private emitter;
private xDatabase;
setEnableSendAndReceiveDebug(enableSendAndReceiveDebug: boolean): void;
setEnablePostViaMsgPack(enablePostViaMsgPack: boolean): void;
setEnablePostViaJson(enablePostViaJson: boolean): void;
setServer(server: Server): void;
setApiMiddleware(apiMiddleware: ApiMiddleware): void;
setAntiDdosMiddleware(antiDdosMiddleware: AntiDdosMiddleware): void;
setEmitter(emitter: Emitter): void;
setDatabase(database: xDatabase): void;
setOnSocketRequest(_onRequestCb: OnSocketRequest): void;
setOnSocketDisconnect(_onDisconnectCb: OnSocketDisconnect): void;
run(): void;
private socketConnect;
private initSocket;
private onSocketRequestAuthToken;
private onSocketRequestMsgPack;
private onSocketRequestJson;
private onSocketResponse;
private onSocketDisconnect;
private sendResponseForSocket;
sendEventTo(userId: string, operationEvent: OperationEvent, useMsgPack?: boolean): void;
sendEventToRoom(roomId: string, operationEvent: OperationEvent, useMsgPack?: boolean): void;
sendEventToMoreUser(userIds: string[], operationEvent: OperationEvent, useMsgPack?: boolean): void;
sendEventToAllPlayer(operationEvent: OperationEvent, useMsgPack?: boolean): void;
sendEventToNamespace(namespace: string, operationEvent: OperationEvent, useMsgPack?: boolean): void;
getSocketViaSocketId(socketId: string): Socket;
getSockets(userId: string): import("socket.io").BroadcastOperator<import("socket.io/dist/typed-events").DecorateAcknowledgementsWithMultipleResponses<import("socket.io").DefaultEventsMap>, any>;
joinRoom(userId: string, roomId: string): void;
leaveRoom(userId: string, roomId: string): void;
getRooms(userId: string): Promise<string[]>;
}
export {};