open-collaboration-server
Version:
Open Collaboration Server implementation, part of the Open Collaboration Tools project
47 lines • 1.59 kB
TypeScript
import { Socket } from 'socket.io';
import * as ws from 'ws';
import { Disposable, Event, Message } from 'open-collaboration-protocol';
export declare class Channel {
private onDidCloseEmitter;
private onDidDisconnectEmitter;
private onDidReconnectEmitter;
private onMessageEmitter;
get onClose(): Event<void>;
get onDisconnect(): Event<void>;
get onReconnect(): Event<void>;
get transport(): TransportChannel | undefined;
set transport(transport: TransportChannel | undefined);
private _transport?;
private buffer;
private toDispose;
private closeTimeout;
constructor(transport: TransportChannel);
get onMessage(): Event<Message>;
sendMessage(message: Message): void;
close(): void;
}
export interface TransportChannel {
onMessage(cb: (message: Message) => void): Disposable;
sendMessage(message: Message): void;
close(): void;
onClose: Event<void>;
}
export declare class WebSocketChannel implements TransportChannel {
private onDidCloseEmitter;
get onClose(): Event<void>;
private _socket;
constructor(socket: ws.WebSocket);
onMessage(cb: (message: Message) => void): Disposable;
sendMessage(message: Message): void;
close(): void;
}
export declare class SocketIoChannel implements TransportChannel {
private onDidCloseEmitter;
get onClose(): Event<void>;
private _socket;
constructor(socket: Socket);
onMessage(cb: (message: Message) => void): Disposable;
sendMessage(message: Message): void;
close(): void;
}
//# sourceMappingURL=channel.d.ts.map