| import { EventEmitter } from "events"; | |
| import type { IncomingMessage, ServerResponse } from "http"; | |
| import { Packet, RawData } from "engine.io-parser"; | |
| type ReadyState = "open" | "closing" | "closed"; | |
| export type EngineRequest = IncomingMessage & { | |
| _query: Record<string, string>; | |
| res?: ServerResponse; | |
| cleanup?: Function; | |
| websocket?: any; | |
| }; | |
| export declare abstract class Transport extends EventEmitter { | |
| /** | |
| * The session ID. | |
| */ | |
| sid: string; | |
| /** | |
| * Whether the transport is currently ready to send packets. | |
| */ | |
| writable: boolean; | |
| /** | |
| * The revision of the protocol: | |
| * | |
| * - 3 is used in Engine.IO v3 / Socket.IO v2 | |
| * - 4 is used in Engine.IO v4 and above / Socket.IO v3 and above | |
| * | |
| * It is found in the `EIO` query parameters of the HTTP requests. | |
| * | |
| * @see https://github.com/socketio/engine.io-protocol | |
| */ | |
| protocol: number; | |
| /** | |
| * The current state of the transport. | |
| * @protected | |
| */ | |
| protected _readyState: ReadyState; | |
| /** | |
| * Whether the transport is discarded and can be safely closed (used during upgrade). | |
| * @protected | |
| */ | |
| protected discarded: boolean; | |
| /** | |
| * The parser to use (depends on the revision of the {@link Transport#protocol}. | |
| * @protected | |
| */ | |
| protected parser: any; | |
| /** | |
| * Whether the transport supports binary payloads (else it will be base64-encoded) | |
| * @protected | |
| */ | |
| protected supportsBinary: boolean; | |
| get readyState(): ReadyState; | |
| set readyState(state: ReadyState); | |
| /** | |
| * Transport constructor. | |
| * | |
| * @param {EngineRequest} req | |
| */ | |
| constructor(req: { | |
| _query: Record<string, string>; | |
| }); | |
| /** | |
| * Flags the transport as discarded. | |
| * | |
| * @package | |
| */ | |
| discard(): void; | |
| /** | |
| * Called with an incoming HTTP request. | |
| * | |
| * @param req | |
| * @package | |
| */ | |
| onRequest(req: any): void; | |
| /** | |
| * Closes the transport. | |
| * | |
| * @package | |
| */ | |
| close(fn?: () => void): void; | |
| /** | |
| * Called with a transport error. | |
| * | |
| * @param {String} msg - message error | |
| * @param {Object} desc - error description | |
| * @protected | |
| */ | |
| protected onError(msg: string, desc?: any): void; | |
| /** | |
| * Called with parsed out a packets from the data stream. | |
| * | |
| * @param {Object} packet | |
| * @protected | |
| */ | |
| protected onPacket(packet: Packet): void; | |
| /** | |
| * Called with the encoded packet data. | |
| * | |
| * @param {String} data | |
| * @protected | |
| */ | |
| protected onData(data: RawData): void; | |
| /** | |
| * Called upon transport close. | |
| * | |
| * @protected | |
| */ | |
| protected onClose(): void; | |
| /** | |
| * The name of the transport. | |
| */ | |
| abstract get name(): string; | |
| /** | |
| * Sends an array of packets. | |
| * | |
| * @param {Array} packets | |
| * @package | |
| */ | |
| abstract send(packets: Packet[]): void; | |
| /** | |
| * Closes the transport. | |
| */ | |
| abstract doClose(fn?: () => void): void; | |
| } | |
| export {}; | |