Skip to content

Commit

Permalink
feat: add message Pub/Sub pattern
Browse files Browse the repository at this point in the history
  • Loading branch information
gabrielcanali committed Feb 18, 2024
1 parent 27e8e1f commit 4588014
Showing 1 changed file with 31 additions and 0 deletions.
31 changes: 31 additions & 0 deletions server/src/utils/message-pub-sub.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
type Message = {
userId: Number,
content: string,
created_at: Date
}

type Subscriber = (message: Message) => void

class messagesPubSub {
private channels: Record<string, Subscriber[]> = {}

subscribe(channelId: string, subscriber: Subscriber) {
if (!this.channels[channelId]) {
this.channels[channelId] = []
}

this.channels[channelId].push(subscriber)
}

publish(channelId: string, message: Message) {
if (!this.channels[channelId]) {
return;
}

for (const subscriber of this.channels[channelId]) {
subscriber(message)
}
}
}

export const messageDisplay = new messagesPubSub()

0 comments on commit 4588014

Please sign in to comment.