@mulingai-npm/redis 1.2.8 → 1.2.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -19,4 +19,6 @@ export declare class MulingstreamListenerManager {
|
|
|
19
19
|
getListener(listenerIdOrToken: string): Promise<MulingstreamListenerData | null>;
|
|
20
20
|
removeListenerByToken(token: string): Promise<boolean>;
|
|
21
21
|
updateNameLanguage(listenerIdOrToken: string, name: string, language: string): Promise<boolean>;
|
|
22
|
+
updateSocketId(listenerIdOrToken: string, socketId: string): Promise<boolean>;
|
|
23
|
+
getTargetSocketIdsByRoomLanguage(roomId: string, language: string): Promise<string[]>;
|
|
22
24
|
}
|
|
@@ -114,5 +114,23 @@ class MulingstreamListenerManager {
|
|
|
114
114
|
});
|
|
115
115
|
return true;
|
|
116
116
|
}
|
|
117
|
+
async updateSocketId(listenerIdOrToken, socketId) {
|
|
118
|
+
const listener = await this.getListener(listenerIdOrToken);
|
|
119
|
+
if (!listener) {
|
|
120
|
+
return false;
|
|
121
|
+
}
|
|
122
|
+
// Update the name/language on the listener’s hash key
|
|
123
|
+
await this.redisClient.hset(`listener:${listener.listenerId}`, {
|
|
124
|
+
socketId
|
|
125
|
+
});
|
|
126
|
+
return true;
|
|
127
|
+
}
|
|
128
|
+
async getTargetSocketIdsByRoomLanguage(roomId, language) {
|
|
129
|
+
const listeners = await this.getListenersByRoom(roomId);
|
|
130
|
+
const filteredListeners = listeners.filter((listener) => {
|
|
131
|
+
return listener.isActive === true && listener.language === language && listener.socketId && listener.socketId.trim() !== '';
|
|
132
|
+
});
|
|
133
|
+
return filteredListeners.map((listener) => listener.socketId);
|
|
134
|
+
}
|
|
117
135
|
}
|
|
118
136
|
exports.MulingstreamListenerManager = MulingstreamListenerManager;
|