@synet/realtime
Version:
Realtime Communication server/client implementations
34 lines (33 loc) • 1.1 kB
TypeScript
import type { Logger } from "@synet/logger";
import type { RealtimeServer, RealtimeServerOptions, RealtimeServerStats, ServerEventType, RealtimeEvent, Topic } from "@synet/patterns/realtime/server";
/**
* GUN-specific options
*/
export interface GunServerOptions {
port?: number;
host?: string;
storagePath?: string;
multicast?: boolean;
peers?: string[];
axe?: boolean;
checkInterval?: number;
}
export declare class GunRealtimeServer implements RealtimeServer {
private options;
private logger?;
private httpServer?;
private gun?;
private clients;
private subscriptions;
private stats;
private startTime;
private eventHandlers;
private topicSubscriptions;
private checkIntervalId?;
constructor(options?: RealtimeServerOptions<GunServerOptions>, logger?: Logger | undefined);
start(): Promise<void>;
stop(): Promise<void>;
broadcast(topic: Topic, event: RealtimeEvent): Promise<void>;
getStats(): RealtimeServerStats;
on<T extends ServerEventType>(event: T, handler: (data: unknown) => void): void;
}