Skip to main content
Glama
pubsub.ts1.06 kB
/** * Simple Pub/Sub system for event streaming. */ export class PubSub { private subscribers: Map<string, Set<(payload: any) => void>> = new Map(); subscribe(topic: string, callback: (payload: any) => void): () => void { if (!this.subscribers.has(topic)) { this.subscribers.set(topic, new Set()); } this.subscribers.get(topic)!.add(callback); return () => { const subs = this.subscribers.get(topic); if (subs) { subs.delete(callback); if (subs.size === 0) { this.subscribers.delete(topic); } } }; } publish(topic: string, payload: any): void { const subs = this.subscribers.get(topic); if (subs) { subs.forEach(callback => { try { callback(payload); } catch (error) { console.error(`Error in subscriber for topic ${topic}:`, error); } }); } } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Mnehmos/rpg-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server