@shelltender/server
Version:
Server-side terminal session management for Shelltender
50 lines • 1.82 kB
TypeScript
import { Server as HTTPServer } from 'http';
import { Server as HTTPSServer } from 'https';
import { SessionManager } from './SessionManager.js';
import { BufferManager } from './BufferManager.js';
import { SessionStore } from './SessionStore.js';
import { EventManager } from './events/EventManager.js';
export interface WebSocketServerOptions {
port?: number;
server?: HTTPServer | HTTPSServer;
noServer?: boolean;
host?: string;
path?: string;
perMessageDeflate?: boolean | object;
maxPayload?: number;
clientTracking?: boolean;
}
export declare class WebSocketServer {
private wss;
private sessionManager;
private bufferManager;
private sessionStore?;
private eventManager?;
private clients;
private clientStates;
private clientPatterns;
private clientEventSubscriptions;
private monitorClients;
private adminProxy;
private adminClients;
private constructor();
static create(config: number | WebSocketServerOptions, sessionManager: SessionManager, bufferManager: BufferManager, eventManager?: EventManager, sessionStore?: SessionStore): WebSocketServer;
private setupWebSocketHandlers;
private handleMessage;
private handleCreateSession;
private handleConnectSession;
private handleSessionInput;
private handleSessionResize;
private handleSessionDisconnect;
private handleAdminMessage;
broadcastToSession(sessionId: string, data: any): void;
private setupEventSystem;
private handleRegisterPattern;
private handleUnregisterPattern;
private handleSubscribeEvents;
private handleUnsubscribeEvents;
private handleMonitorAll;
getSessionClientCount(sessionId: string): number;
getClientsBySession(): Map<string, number>;
}
//# sourceMappingURL=WebSocketServer.d.ts.map