You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
140 lines
4.2 KiB
140 lines
4.2 KiB
/// <reference types="node" /> |
|
import { EventEmitter } from "events"; |
|
export declare type SocketId = string; |
|
export declare type Room = string; |
|
export interface BroadcastFlags { |
|
volatile?: boolean; |
|
compress?: boolean; |
|
local?: boolean; |
|
broadcast?: boolean; |
|
binary?: boolean; |
|
timeout?: number; |
|
} |
|
export interface BroadcastOptions { |
|
rooms: Set<Room>; |
|
except?: Set<SocketId>; |
|
flags?: BroadcastFlags; |
|
} |
|
export declare class Adapter extends EventEmitter { |
|
readonly nsp: any; |
|
rooms: Map<Room, Set<SocketId>>; |
|
sids: Map<SocketId, Set<Room>>; |
|
private readonly encoder; |
|
/** |
|
* In-memory adapter constructor. |
|
* |
|
* @param {Namespace} nsp |
|
*/ |
|
constructor(nsp: any); |
|
/** |
|
* To be overridden |
|
*/ |
|
init(): Promise<void> | void; |
|
/** |
|
* To be overridden |
|
*/ |
|
close(): Promise<void> | void; |
|
/** |
|
* Returns the number of Socket.IO servers in the cluster |
|
* |
|
* @public |
|
*/ |
|
serverCount(): Promise<number>; |
|
/** |
|
* Adds a socket to a list of room. |
|
* |
|
* @param {SocketId} id the socket id |
|
* @param {Set<Room>} rooms a set of rooms |
|
* @public |
|
*/ |
|
addAll(id: SocketId, rooms: Set<Room>): Promise<void> | void; |
|
/** |
|
* Removes a socket from a room. |
|
* |
|
* @param {SocketId} id the socket id |
|
* @param {Room} room the room name |
|
*/ |
|
del(id: SocketId, room: Room): Promise<void> | void; |
|
private _del; |
|
/** |
|
* Removes a socket from all rooms it's joined. |
|
* |
|
* @param {SocketId} id the socket id |
|
*/ |
|
delAll(id: SocketId): void; |
|
/** |
|
* Broadcasts a packet. |
|
* |
|
* Options: |
|
* - `flags` {Object} flags for this packet |
|
* - `except` {Array} sids that should be excluded |
|
* - `rooms` {Array} list of rooms to broadcast to |
|
* |
|
* @param {Object} packet the packet object |
|
* @param {Object} opts the options |
|
* @public |
|
*/ |
|
broadcast(packet: any, opts: BroadcastOptions): void; |
|
/** |
|
* Broadcasts a packet and expects multiple acknowledgements. |
|
* |
|
* Options: |
|
* - `flags` {Object} flags for this packet |
|
* - `except` {Array} sids that should be excluded |
|
* - `rooms` {Array} list of rooms to broadcast to |
|
* |
|
* @param {Object} packet the packet object |
|
* @param {Object} opts the options |
|
* @param clientCountCallback - the number of clients that received the packet |
|
* @param ack - the callback that will be called for each client response |
|
* |
|
* @public |
|
*/ |
|
broadcastWithAck(packet: any, opts: BroadcastOptions, clientCountCallback: (clientCount: number) => void, ack: (...args: any[]) => void): void; |
|
/** |
|
* Gets a list of sockets by sid. |
|
* |
|
* @param {Set<Room>} rooms the explicit set of rooms to check. |
|
*/ |
|
sockets(rooms: Set<Room>): Promise<Set<SocketId>>; |
|
/** |
|
* Gets the list of rooms a given socket has joined. |
|
* |
|
* @param {SocketId} id the socket id |
|
*/ |
|
socketRooms(id: SocketId): Set<Room> | undefined; |
|
/** |
|
* Returns the matching socket instances |
|
* |
|
* @param opts - the filters to apply |
|
*/ |
|
fetchSockets(opts: BroadcastOptions): Promise<any[]>; |
|
/** |
|
* Makes the matching socket instances join the specified rooms |
|
* |
|
* @param opts - the filters to apply |
|
* @param rooms - the rooms to join |
|
*/ |
|
addSockets(opts: BroadcastOptions, rooms: Room[]): void; |
|
/** |
|
* Makes the matching socket instances leave the specified rooms |
|
* |
|
* @param opts - the filters to apply |
|
* @param rooms - the rooms to leave |
|
*/ |
|
delSockets(opts: BroadcastOptions, rooms: Room[]): void; |
|
/** |
|
* Makes the matching socket instances disconnect |
|
* |
|
* @param opts - the filters to apply |
|
* @param close - whether to close the underlying connection |
|
*/ |
|
disconnectSockets(opts: BroadcastOptions, close: boolean): void; |
|
private apply; |
|
private computeExceptSids; |
|
/** |
|
* Send a packet to the other Socket.IO servers in the cluster |
|
* @param packet - an array of arguments, which may include an acknowledgement callback at the end |
|
*/ |
|
serverSideEmit(packet: any[]): void; |
|
}
|
|
|