@runejs/core
Version:
Core logging, networking, and buffer functionality for RuneJS applications.
19 lines (18 loc) • 854 B
TypeScript
/// <reference types="node" />
import { Socket } from 'net';
import { ByteBuffer } from '../buffer';
import { ConnectionStatus } from './connection-status';
export declare abstract class SocketServer<T = undefined> {
readonly socket: Socket;
protected _connectionStatus: ConnectionStatus | T;
constructor(socket: Socket);
static launch<T extends SocketServer<any>>(serverName: string, hostName: string, port: number, socketServerFactory: (socket: Socket) => T): void;
dataReceived(data: Buffer): void;
closeConnection(): void;
error(error: any): void;
abstract initialHandshake(data: ByteBuffer): boolean;
abstract decodeMessage(data: ByteBuffer): void | Promise<void>;
abstract connectionDestroyed(): void;
get connectionStatus(): ConnectionStatus | T;
get connectionAlive(): boolean;
}