redis-pubsub.tsβ’713 B
import { Redis } from 'ioredis'
export const redisPubSub = (
redisClientSubscriber: Redis,
redisClientPublisher: Redis,
) => {
return {
async subscribe(
channel: string,
listener: (channel: string, message: string) => void,
): Promise<void> {
await redisClientSubscriber.subscribe(channel)
redisClientSubscriber.on('message', listener)
},
async publish(channel: string, message: string): Promise<void> {
await redisClientPublisher.publish(channel, message)
},
async unsubscribe(channel: string): Promise<void> {
await redisClientSubscriber.unsubscribe(channel)
},
}
}