2026-05-10 13:12:44 +08:00

38 lines
1.1 KiB
JavaScript

// 事件总线(群聊频道)
window.EventBus = {
listeners: {},
// 订阅(加入群聊)
on: function(event, callback) {
if (!this.listeners[event]) {
this.listeners[event] = [];
}
this.listeners[event].push(callback);
console.log(`[事件总线] 订阅事件: ${event}`);
},
// 取消订阅(退群)
off: function(event, callback) {
if (!this.listeners[event]) return;
if (!callback) {
delete this.listeners[event];
} else {
this.listeners[event] = this.listeners[event].filter(cb => cb !== callback);
}
console.log(`[事件总线] 取消订阅: ${event}`);
},
// 发送消息(@所有人)
emit: function(event, data) {
console.log(`[事件总线] 发送事件: ${event}`, data);
if (!this.listeners[event]) return;
this.listeners[event].forEach(callback => {
try {
callback(data);
} catch (e) {
console.error(`[事件总线] 执行回调出错: ${e}`);
}
});
}
};