123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444 |
- import { Packet } from "socket.io-parser";
- import { EventParams, EventNames, EventsMap, StrictEventEmitter, DefaultEventsMap } from "./typed-events";
- import type { Client } from "./client";
- import type { Namespace } from "./namespace";
- import type { IncomingMessage, IncomingHttpHeaders } from "http";
- import type { Room, SocketId } from "socket.io-adapter";
- import type { ParsedUrlQuery } from "querystring";
- import { BroadcastOperator } from "./broadcast-operator";
- export interface SocketReservedEventsMap {
- disconnect: (reason: string) => void;
- disconnecting: (reason: string) => void;
- error: (err: Error) => void;
- }
- export interface EventEmitterReservedEventsMap {
- newListener: (eventName: string | Symbol, listener: (...args: any[]) => void) => void;
- removeListener: (eventName: string | Symbol, listener: (...args: any[]) => void) => void;
- }
- export declare const RESERVED_EVENTS: ReadonlySet<string | Symbol>;
- export interface Handshake {
-
- headers: IncomingHttpHeaders;
-
- time: string;
-
- address: string;
-
- xdomain: boolean;
-
- secure: boolean;
-
- issued: number;
-
- url: string;
-
- query: ParsedUrlQuery;
-
- auth: {
- [key: string]: any;
- };
- }
- export declare type Event = [string, ...any[]];
- export declare class Socket<ListenEvents extends EventsMap = DefaultEventsMap, EmitEvents extends EventsMap = ListenEvents, ServerSideEvents extends EventsMap = DefaultEventsMap, SocketData = any> extends StrictEventEmitter<ListenEvents, EmitEvents, SocketReservedEventsMap> {
- readonly nsp: Namespace<ListenEvents, EmitEvents, ServerSideEvents>;
- readonly client: Client<ListenEvents, EmitEvents, ServerSideEvents>;
- readonly id: SocketId;
- readonly handshake: Handshake;
-
- data: Partial<SocketData>;
- connected: boolean;
- private readonly server;
- private readonly adapter;
- private acks;
- private fns;
- private flags;
- private _anyListeners?;
- private _anyOutgoingListeners?;
-
- constructor(nsp: Namespace<ListenEvents, EmitEvents, ServerSideEvents>, client: Client<ListenEvents, EmitEvents, ServerSideEvents>, auth: object);
-
- private buildHandshake;
-
- emit<Ev extends EventNames<EmitEvents>>(ev: Ev, ...args: EventParams<EmitEvents, Ev>): boolean;
-
- private registerAckCallback;
-
- to(room: Room | Room[]): BroadcastOperator<EmitEvents, SocketData>;
-
- in(room: Room | Room[]): BroadcastOperator<EmitEvents, SocketData>;
-
- except(room: Room | Room[]): BroadcastOperator<EmitEvents, SocketData>;
-
- send(...args: EventParams<EmitEvents, "message">): this;
-
- write(...args: EventParams<EmitEvents, "message">): this;
-
- private packet;
-
- join(rooms: Room | Array<Room>): Promise<void> | void;
-
- leave(room: string): Promise<void> | void;
-
- private leaveAll;
-
- _onconnect(): void;
-
- _onpacket(packet: Packet): void;
-
- private onevent;
-
- private ack;
-
- private onack;
-
- private ondisconnect;
-
- _onerror(err: Error): void;
-
- _onclose(reason: string): this | undefined;
-
- _error(err: any): void;
-
- disconnect(close?: boolean): this;
-
- compress(compress: boolean): this;
-
- get volatile(): this;
-
- get broadcast(): BroadcastOperator<EmitEvents, SocketData>;
-
- get local(): BroadcastOperator<EmitEvents, SocketData>;
-
- timeout(timeout: number): this;
-
- private dispatch;
-
- use(fn: (event: Event, next: (err?: Error) => void) => void): this;
-
- private run;
-
- get disconnected(): boolean;
-
- get request(): IncomingMessage;
-
- get conn(): import("engine.io").Socket;
-
- get rooms(): Set<Room>;
-
- onAny(listener: (...args: any[]) => void): this;
-
- prependAny(listener: (...args: any[]) => void): this;
-
- offAny(listener?: (...args: any[]) => void): this;
-
- listenersAny(): ((...args: any[]) => void)[];
- /**
- * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the
- * callback.
- *
- * @param listener
- *
- * <pre><code>
- *
- * socket.onAnyOutgoing((event, ...args) => {
- * console.log(event);
- * });
- *
- * </pre></code>
- *
- * @public
- */
- onAnyOutgoing(listener: (...args: any[]) => void): this;
- /**
- * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the
- * callback. The listener is added to the beginning of the listeners array.
- *
- * @param listener
- *
- * <pre><code>
- *
- * socket.prependAnyOutgoing((event, ...args) => {
- * console.log(event);
- * });
- *
- * </pre></code>
- *
- * @public
- */
- prependAnyOutgoing(listener: (...args: any[]) => void): this;
- /**
- * Removes the listener that will be fired when any event is emitted.
- *
- * @param listener
- *
- * <pre><code>
- *
- * const handler = (event, ...args) => {
- * console.log(event);
- * }
- *
- * socket.onAnyOutgoing(handler);
- *
- *
- * socket.offAnyOutgoing(handler);
- *
- * </pre></code>
- *
- * @public
- */
- offAnyOutgoing(listener?: (...args: any[]) => void): this;
- /**
- * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,
- * e.g. to remove listeners.
- *
- * @public
- */
- listenersAnyOutgoing(): ((...args: any[]) => void)[];
- /**
- * Notify the listeners for each packet sent (emit or broadcast)
- *
- * @param packet
- *
- * @private
- */
- private notifyOutgoingListeners;
- private newBroadcastOperator;
- }
|