@fuwu-yuan/bgew
Version:
Baguette Game Engine Web is a french 2D Web game engine
88 lines (87 loc) • 2.51 kB
TypeScript
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;
}