websocketer-cluster
Version:
Cluster manager using WebSocket PubSub
69 lines (64 loc) • 1.96 kB
TypeScript
import EventEmitter from 'eventemitter3';
import { RequestData, Cluster, Client as Client$1, Options } from 'websocketer';
interface RedisClusterClientOptions {
host?: string;
username?: string;
password?: string;
client?: any;
id?: string;
timeout?: number;
debug?: boolean;
}
declare class RedisClusterClient extends EventEmitter {
private _options;
private _channel;
private _publisher?;
private _subscriber?;
private _id;
constructor(options?: RedisClusterClientOptions);
get options(): RedisClusterClientOptions;
get id(): string;
get channel(): string;
get client(): any;
get subscriber(): any;
get redisOptions(): any;
destroy(): void;
setId(id: string): void;
clients(): Promise<Record<string, any>[]>;
clientIds(): Promise<string[]>;
sendRequest(request: RequestData): void;
}
interface RedisClusterOptions {
host?: string;
username?: string;
password?: string;
id?: string;
client?: any;
timeout?: number;
debug?: boolean;
}
declare class RedisCluster extends EventEmitter implements Cluster {
private _clusterClient;
private _clients;
private _timeout;
/** <request_id, number_clusters_registered> */
private _requests;
constructor(options: RedisClusterOptions);
get cluster(): RedisClusterClient;
get socketers(): Set<Client$1<any, any, any>>;
get clients(): Set<Client$1<any, any, any>>;
get requests(): Map<string, {
clients: Set<string>;
timeout: any;
}>;
destroy(): void;
register(client: Client$1): void;
unregister(client: Client$1): void;
handleRequest(request: RequestData<any>): Promise<void>;
private _handleEvents;
}
declare class Client extends Client$1<any, any, RedisCluster> {
constructor(options?: Partial<Options>);
protected _send(data: RequestData): void;
}
export { Client, RedisCluster, RedisClusterClient };