/** * * 发布订阅模式 * 发布者、订阅发布中心、订阅者 * * 发布者:持有订阅发布中心 * 发布消息到 订阅发布中心 * * 订阅发布中心: * 消息队列 * 订阅的监听回调事件队列 * 1. 接收订阅者的订阅,绑定订阅的监听回调事件 * 2. 接收发布者发布的消息 * 3. 通知订阅者,执行绑定的监听回调事件 * * 订阅者:持有订阅发布中心 * 绑定消息监听回调事件到 订阅发布中心 * * 工作流 * PublisherA → Boker → SubscriberA * PublisherB SubscriberB * SubscriberC * * publisher.publish(messsageType, message) → * pubsub.acceptPublish(messsageType, message) * * pubsub.notifySubscribers(messageType) → * subscriber-listenCallback */ /** * 订阅发布中心 */ export declare class PubSub { private messageQueues; private listenQueues; constructor(); /** 接收 Publisher 往消息队列中发送消息 */ acceptPublish(messageType: string, message: string): void; /** 接收 Subscriber 订阅 */ acceptSubscribe(messageType: string, listenCallback: (messageQueue: string[]) => void): void; notifySubscribers(messageType: string): void; } /** * Publisher 发布者 */ export declare class Publisher { private pubsub; constructor(pubsub: PubSub); publish(messsageType: string, message: string): void; } /** * Subsriber 订阅者 */ export declare class Subscriber { private name; private pubsub; constructor(name: string, pubsub: PubSub); subscribe(messageType: string, listenCallback: (messageQueue: string[]) => void): void; }