shardy
Version:
Framework for online games and applications on Node.js
67 lines (66 loc) • 2.23 kB
TypeScript
import { BlockData } from './Block';
import { PayloadData } from './Payload';
import { Logger } from './Logger';
import { Service, ServiceOptions } from './Service';
import { Connection } from './Connection';
export type Task = (commander: Commander, payload: PayloadData, service: Service) => void;
export type ResponseType = (data: PayloadData) => void;
export declare enum CommanderMode {
Service = 0,
Bot = 1
}
export declare enum DisconnectReason {
Normal = 0,
Timeout = 1,
Handshake = 2,
ServerDown = 3,
Unknown = 4
}
export declare class Commander {
private id;
private connection;
private service;
private options;
private log;
private mode;
onDisconnect: (reason: DisconnectReason) => void;
onReady: () => void;
cid: string;
private counter;
private pulse;
private commands;
private callbacks;
private requests;
private timeouts;
private names;
private timer;
private protocol;
private reason;
constructor(id: string, connection: Connection, service: Service, options: ServiceOptions, log: Logger, mode?: CommanderMode);
kick(reason: DisconnectReason): void;
heartbeat(): void;
handshake(data: Buffer): void;
acknowledge(data: Buffer): void;
disconnect(): void;
command(command: string, data?: Buffer): void;
fetch(request: string, data?: Buffer): Promise<PayloadData>;
request(request: string, callback: ResponseType, data?: Buffer): number;
response(request: PayloadData, data?: Buffer): void;
error(request: PayloadData, error: string, data?: Buffer): void;
clear(): void;
cancelRequest(id: number): void;
addCommand(command: string, callback: ResponseType): void;
cancelCommand(command: string, callback?: ResponseType): void;
addOnRequest(request: string, callback: ResponseType): void;
cancelOnRequest(request: string): void;
onCheckTimeout(): void;
onBlock(block: BlockData): void;
onPayload(payload: PayloadData): void;
onClose(): void;
onHandshake(block: BlockData): void;
onAcknowledgement(block: BlockData): void;
onHeartbeat(): void;
onKick(block: BlockData): void;
onPulse(): void;
destroy(): void;
}