This class is used to publish on a channel using the Redis PubSub.
export interface ChannelOptions {
redis: RedisAdapter;
name: string;
}
export type MessageWithMetadata<T, K> = T & {
metadata: K;
};
export type PublishOptions<
T extends Record<string, any> = Record<string, any>,
K extends Record<string, any> | null = null> = K extends null ?
(T | T[]) : (MessageWithMetadata<T, K> | MessageWithMetadata<T, K>[]);
import { Channel, RedisAdapter } from "@myunisoft/redis";
const name = "foo";
const redis = new RedisAdapter({
port: Number(process.env.REDIS_PORT),
host: process.env.REDIS_HOST
});
const subscriber = new RedisAdapter({
port: Number(process.env.REDIS_PORT),
host: process.env.REDIS_HOST
});
await redis.initialize();
await subscriber.initialize();
await subscriber.subscribe(name);
subscriber.on("message", (channel, message) => {
// Handle incoming event
});
const channel = new Channel({
redis,
name
});
Publish an event on the pubsub channel
await channel.pub({ data: { foo: "bar" }});