@@ -323,17 +323,30 @@ func handleMessages(
323
323
Content : "The session has been closed by a user." ,
324
324
}
325
325
targetId := msgData .UserID
326
- data , err := persistMappings .Conn .HGetAll (context .Background (), targetId ).Result ()
326
+ ownData , err := persistMappings .Conn .HGetAll (context .Background (), targetId ).Result ()
327
327
if err != nil {
328
328
log .Printf ("Error retrieving data for userID %s: %v" , targetId , err )
329
329
} else {
330
- _ , err1 := persistMappings .Conn .Del (context .Background (), targetId ).Result ()
331
- if err1 != nil {
332
- log .Printf ("Error deleting data for userID %s: %v" , targetId , err1 )
330
+ // delete room under user id if it curr matches the room ID
331
+ ownRoomId := ownData ["roomId" ]
332
+ if ownRoomId == client .roomID {
333
+ _ , err := persistMappings .Conn .Del (context .Background (), targetId ).Result ()
334
+ if err != nil {
335
+ log .Printf ("Error deleting data for userID %s: %v" , targetId , err )
336
+ }
333
337
}
334
- _ , err2 := persistMappings .Conn .Del (context .Background (), data ["otherUser" ]).Result ()
335
- if err2 != nil {
336
- log .Printf ("Error deleting data for other user %s: %v" , data ["otherUser" ], err2 )
338
+ // delete room under other user if it curr matches the room ID
339
+ otherUser := ownData ["otherUser" ]
340
+ othRoomId , err := persistMappings .Conn .HGet (context .Background (), otherUser , "roomId" ).Result ()
341
+ if err != nil {
342
+ log .Printf ("Error retrieving data for otherUser %s: %v" , otherUser , err )
343
+ } else {
344
+ if othRoomId == client .roomID {
345
+ _ , err := persistMappings .Conn .Del (context .Background (), otherUser ).Result ()
346
+ if err != nil {
347
+ log .Printf ("Error deleting data for other user %s: %v" , otherUser , err )
348
+ }
349
+ }
337
350
}
338
351
}
339
352
hub .broadcast <- closeMessage
0 commit comments