UNPKG

@xmobitea/gn-server

Version:

GearN Server by XmobiTea (Pro)

59 lines (58 loc) 2.9 kB
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 {};