UNPKG

@fuwu-yuan/bgew

Version:

Baguette Game Engine Web is a french 2D Web game engine

88 lines (87 loc) 2.51 kB
import { Board } from "../board"; import { WebSocketSubject } from "rxjs/webSocket"; import * as Network from '.'; import { SocketMessage } from "."; /** * A network manager is aim to manage communication with your server API and websocket server */ export declare abstract class AbstractNetworkManager { protected api: import("axios").AxiosInstance; protected board: Board; protected webSocketSubject: WebSocketSubject<any> | null; protected msgsPromises: { timestamp: number; promise: { resolve: (value: (Network.SocketMessage | PromiseLike<Network.SocketMessage>)) => void; reject: (reason?: any) => void; }; }[]; constructor(board: Board); private init; abstract ping(): Promise<string>; /** * You must initialize this.webSocketSubject as a WebSocketSubject<SocketMessage> * @param uid */ abstract joinRoom(uid: string): Promise<Network.Response>; /** * Disconnect from websocket */ leaveRoom(): void; /** * Call your API to create a new websocket server * * @param name * @param limit * @param data * @param autojoinroom */ abstract createRoom(name: string, limit: number, data: {}, autojoinroom: boolean): Promise<Network.Response>; /** * Add some data to your server * * @param data * @param merge */ abstract setRoomData(data: any, merge: boolean): Promise<Network.Response>; /** * Get data from server */ abstract getRoomData(): Promise<Network.Response>; /** * Close a server * * @param uid * @param close */ abstract closeRoom(uid: string, close: boolean): Promise<Network.Response>; /** * Return all opened rooms */ abstract getOpenedRooms(): Promise<{ status: string; servers: Network.Room[]; }>; /** * Return all closed rooms */ abstract getClosedRooms(): Promise<{ status: string; servers: Network.Room[]; }>; /** * Open a room (similar to closeRoom(uid, false) * @param uid */ openRoom(uid: string): Promise<Network.Response>; sendMessage(message: any): Promise<SocketMessage>; msgSentConfirmation(message: SocketMessage): void; /** * This function check if page is reloaded and disconnect the socket * * @private */ private checkPageReload; abstract get wsUrl(): string; abstract get apiUrl(): string; }