Using suppressUserList break RoomVariable updates
Posted: 15 Feb 2024, 11:37
Hello SFS team,
We had a recent issue with RoomVariable updates when we started using suppressUserList.
We have the following room structure:
* Room group Alpha contains rooms Alpha 1, Alpha 2, Alpha 3 ...
* Room group Beta contains rooms Beta 1, Beta 2, Beta 3 ...
Users will switch between rooms of Alpha and Beta according to some game rules. A user listens only to one room group at a time, Alpha if they are on an Alpha # room, or Beta of they are on a Beta # room.
The issue started happening when we made some Alpha Rooms suppressUserList
How to reproduce:
1. Have 2 room groups Alpha and Beta
2. Create a room Alpha 1 with suppressUserList=true
3. Create a room Beta 1 with no special configurations
4. Make a user join room Alpha 1 (and consequently listens to Alpha room group)
5. Set a RoomVariable of Alpha 1 to a known value, say 1
6. Move user to room Beta 1 (and consequently leaves room Alpha 1 and unsubscribe from group Alpha and subscribe to group Beta)
5. Set the same RoomVariable of Alpha 1 to a different value, say 2
7. Move user back to room Alpha 1
8. In the client check the value of the RoomVariable
Expected Behaviour:
RoomVariable value is the most recent value 2
Actual Behaviour:
RoomVariable value is an old value 1
Notes:
* This only happens if the user joined Alpha 1 at least once before moving to Beta room group
* Other users who didn't leave Alpha 1 get the correct value
* If a client with wrong value reconnect, they get the correct value
Extra Note:
This also affect the room existence state. If room Alpha 1 was removed while the user is in Beta room group the client will see Alpha 1 in the rooms list when joining Alpha room group again even though it no longer exist in the server
Thank you in advance for your assistance
We had a recent issue with RoomVariable updates when we started using suppressUserList.
We have the following room structure:
* Room group Alpha contains rooms Alpha 1, Alpha 2, Alpha 3 ...
* Room group Beta contains rooms Beta 1, Beta 2, Beta 3 ...
Users will switch between rooms of Alpha and Beta according to some game rules. A user listens only to one room group at a time, Alpha if they are on an Alpha # room, or Beta of they are on a Beta # room.
The issue started happening when we made some Alpha Rooms suppressUserList
How to reproduce:
1. Have 2 room groups Alpha and Beta
2. Create a room Alpha 1 with suppressUserList=true
3. Create a room Beta 1 with no special configurations
4. Make a user join room Alpha 1 (and consequently listens to Alpha room group)
5. Set a RoomVariable of Alpha 1 to a known value, say 1
6. Move user to room Beta 1 (and consequently leaves room Alpha 1 and unsubscribe from group Alpha and subscribe to group Beta)
5. Set the same RoomVariable of Alpha 1 to a different value, say 2
7. Move user back to room Alpha 1
8. In the client check the value of the RoomVariable
Expected Behaviour:
RoomVariable value is the most recent value 2
Actual Behaviour:
RoomVariable value is an old value 1
Notes:
* This only happens if the user joined Alpha 1 at least once before moving to Beta room group
* Other users who didn't leave Alpha 1 get the correct value
* If a client with wrong value reconnect, they get the correct value
Extra Note:
This also affect the room existence state. If room Alpha 1 was removed while the user is in Beta room group the client will see Alpha 1 in the rooms list when joining Alpha room group again even though it no longer exist in the server
Thank you in advance for your assistance