@theia/core
Version:
Theia is a cloud & desktop IDE framework implemented in TypeScript.
32 lines • 1.8 kB
TypeScript
/// <reference types="node" />
import { Channel, WriteBuffer } from '../../common/message-rpc';
import { MessagingService } from './messaging-service';
import { Socket } from 'socket.io';
import { ConnectionHandlers } from './default-messaging-service';
import { FrontendConnectionService } from './frontend-connection-service';
import { AbstractChannel } from '../../common/message-rpc/channel';
import { WebsocketEndpoint } from './websocket-endpoint';
export declare class WebsocketFrontendConnectionService implements FrontendConnectionService {
protected readonly websocketServer: WebsocketEndpoint;
protected readonly wsHandlers: ConnectionHandlers<unknown>;
protected readonly connectionsByFrontend: Map<string, ReconnectableSocketChannel>;
protected readonly closeTimeouts: Map<string, NodeJS.Timeout>;
protected readonly channelsMarkedForClose: Set<string>;
registerConnectionHandler(spec: string, callback: (params: MessagingService.PathParams, channel: Channel) => void): void;
protected handleConnection(socket: Socket, channelCreatedHandler: (channel: Channel) => void): Promise<void>;
protected closeConnection(frontEndId: string, reason: string): void;
protected createConnection(socket: Socket, frontEndId: string): ReconnectableSocketChannel;
handleSocketDisconnect(socket: Socket, channel: ReconnectableSocketChannel, frontEndId: string): void;
markForClose(channelId: string): void;
private frontendConnectionTimeout;
}
declare class ReconnectableSocketChannel extends AbstractChannel {
private socket;
private socketBuffer;
private disposables;
connect(socket: Socket): void;
disconnect(): void;
getWriteBuffer(): WriteBuffer;
}
export {};
//# sourceMappingURL=websocket-frontend-connection-service.d.ts.map