@solid/community-server
Version:
Community Solid Server: an open and modular implementation of the Solid specifications
26 lines (25 loc) • 1.28 kB
TypeScript
import type { WebSocket } from 'ws';
import type { SetMultiMap } from '../../../util/map/SetMultiMap';
import type { NotificationChannelStorage } from '../NotificationChannelStorage';
import type { WebSocket2023HandlerInput } from './WebSocket2023Handler';
import { WebSocket2023Handler } from './WebSocket2023Handler';
/**
* Keeps track of the WebSockets that were opened for a WebSocketChannel2023 channel.
* The WebSockets are stored in the map using the identifier of the matching channel.
*
* `cleanupTimer` defines in minutes how often the stored WebSockets are closed
* if their corresponding channel has expired.
* Defaults to 60 minutes.
* Open WebSockets will not receive notifications if their channel expired.
*/
export declare class WebSocket2023Storer extends WebSocket2023Handler {
protected readonly logger: import("global-logger-factory").Logger<unknown>;
private readonly storage;
private readonly socketMap;
constructor(storage: NotificationChannelStorage, socketMap: SetMultiMap<string, WebSocket>, cleanupTimer?: number);
handle({ webSocket, channel }: WebSocket2023HandlerInput): Promise<void>;
/**
* Close all WebSockets that are attached to a channel that no longer exists.
*/
private closeExpiredSockets;
}