123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- 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 {};
|