landstrasse
Version:
Strongly typed WAMP Client for browsers
32 lines (31 loc) • 1.33 kB
TypeScript
import Logger from '../util/logger';
import type { IdGeneratorInterface } from '../util/id';
import type { WampDict } from '../types/messages/MessageTypes';
import type { WampMessage } from '../types/Protocol';
export declare type MessageSender = (msg: WampMessage) => Promise<void>;
export declare type ProtocolViolator = (msg: string) => void;
export declare type IdGenerators = {
global: IdGeneratorInterface;
session: IdGeneratorInterface;
};
export interface ProcessorInterface {
processMessage(msg: WampMessage): boolean;
close(): void;
}
export interface ProcessorFactoryInterface {
new (sender: MessageSender, violator: ProtocolViolator, idGenerators: IdGenerators, logger: Logger): ProcessorInterface;
getFeatures(): WampDict;
}
declare abstract class AbstractProcessor implements ProcessorInterface {
protected sender: MessageSender;
protected violator: ProtocolViolator;
protected idGenerators: IdGenerators;
protected logger: Logger;
protected _closed: boolean;
constructor(sender: MessageSender, violator: ProtocolViolator, idGenerators: IdGenerators, logger: Logger);
close(): void;
processMessage(msg: WampMessage): boolean;
protected abstract onClose(): void;
protected abstract onMessage(msg: WampMessage): boolean;
}
export default AbstractProcessor;