occaecatidicta
Version:
43 lines (36 loc) • 1.3 kB
text/typescript
import {MQTTAcceptor} from './acceptors/mqtt-acceptor';
import {Tracer} from '../util/tracer';
import {TCPAcceptor} from './acceptors/tcp-acceptor';
import {Logger} from 'omelox-logger';
import {EventEmitter} from 'events';
import {MsgPkg} from './dispatcher';
import * as Gateway from './gateway';
// let acceptor from ('./acceptors/ws2-acceptor');
export interface ProcessMsgCallBack {
(err: Error|null, ... args: any[]): void;
}
export type AcceptorCallback = (tracer: Tracer, msg: MsgPkg, cb: ProcessMsgCallBack) => void;
export interface IAcceptorFactory {
(opts: Gateway.RpcServerOpts, cb: AcceptorCallback): IAcceptor;
}
export interface AcceptorOpts {
interval?: number;
bufferMsg?: boolean;
rpcLogger?: Logger;
rpcDebugLog?: boolean;
pkgSize?: number;
tracer?: Tracer;
ping?: number;
}
export interface IAcceptor {
close(): void;
listen(port: number): void;
on(event: 'error', cb: (err: Error, self: IAcceptor) => void): this;
on(event: 'closed', cb: () => void): this;
}
export function createDefaultAcceptor(opts: AcceptorOpts, cb: AcceptorCallback): IAcceptor {
return new MQTTAcceptor(opts, cb);
}
export function createTcpAcceptor(opts: AcceptorOpts, cb: AcceptorCallback): IAcceptor {
return new TCPAcceptor(opts, cb);
}