UNPKG

aux-broker-mq

Version:

Микросервис тест взаимодействия

44 lines (37 loc) 1.22 kB
import { BrokerProxy } from "./BrokerProxy"; export interface EventTest { value: number; date: number; } export interface EventStart { name: string; date: number; } export class BrokerGate extends BrokerProxy { async connect() { await this.connect(); await broker.createChannel("test"); } // Описать интерфейсы для текущей рфеализации send(queue: "start", msg: EventStart): boolean; send(queue: "test", msg: EventTest): boolean; send(queue: "test" | "start", msg: EventTest | EventStart) { return super.emit<EventTest | EventStart>(queue, msg); } addListner(queue: "start", fn: (ev: EventStart) => void): void; addListner(queue: "test", fn: (ev: EventTest) => void): void; addListner(queue: string, fn: (ev: any) => void) { this.on(queue).subscribe(fn as any); } } const broker = new BrokerGate({ host: "localhost" }); async () => { await broker.connect(); await broker.createChannel("test"); broker.on<EventTest>("test").subscribe((el) => { }) broker.send("start", {name: "testService", date: Date.now()}); broker.addListner("start", (ev) => { ev.name }) };