diff --git a/src/database/redis.ts b/src/database/redis.ts index 6fd98c76..fc743ace 100644 --- a/src/database/redis.ts +++ b/src/database/redis.ts @@ -7,10 +7,19 @@ export class RedisDatabase implements DatabaseDriver { */ private _redis: any; + /** + * + * KeyPrefix for used in the redis Connection + * + * @type {String} + */ + private _keyPrefix: string; + /** * Create a new cache instance. */ constructor(private options) { + this._keyPrefix = options.databaseConfig.redis.keyPrefix || ''; this._redis = new Redis(options.databaseConfig.redis); } @@ -29,7 +38,7 @@ export class RedisDatabase implements DatabaseDriver { set(key: string, value: any): void { this._redis.set(key, JSON.stringify(value)); if (this.options.databaseConfig.publishPresence === true && /^presence-.*:members$/.test(key)) { - this._redis.publish('PresenceChannelUpdated', JSON.stringify({ + this._redis.publish(`${this._keyPrefix}PresenceChannelUpdated`, JSON.stringify({ "event": { "channel": key, "members": value diff --git a/src/subscribers/redis-subscriber.ts b/src/subscribers/redis-subscriber.ts index 0966adef..6cb2cd3b 100644 --- a/src/subscribers/redis-subscriber.ts +++ b/src/subscribers/redis-subscriber.ts @@ -37,6 +37,9 @@ export class RedisSubscriber implements Subscriber { return new Promise((resolve, reject) => { this._redis.on('pmessage', (subscribed, channel, message) => { + if (channel.endsWith('PresenceChannelUpdated')) { + return; + } try { message = JSON.parse(message);