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
Using suppressUserList break RoomVariable updates
-
AliAlbarrak
- Posts: 3
- Joined: 02 Dec 2020, 07:27
Re: Using suppressUserList break RoomVariable updates
Thanks for posting all the details.
We'll look into it.
Cheers
We'll look into it.
Cheers
-
AliAlbarrak
- Posts: 3
- Joined: 02 Dec 2020, 07:27
Re: Using suppressUserList break RoomVariable updates
Hello Lapo and team,
I know you are working hard on SFS 3, and our team is excited for it. However, Unity currently shows no signs of supporting .NET Core any time soon. We are wondering if you plan to fix this in SFS 2X, or if it is planned for the SFS 3 release.
Thanks
I know you are working hard on SFS 3, and our team is excited for it. However, Unity currently shows no signs of supporting .NET Core any time soon. We are wondering if you plan to fix this in SFS 2X, or if it is planned for the SFS 3 release.
Thanks
Re: Using suppressUserList break RoomVariable updates
Have you tested the scenario above with the latest versions of SFS2X and relative API? If not I'd suggest to do so and let us know.
I am not sure why the described use case would not work. RoomVariables do not depend on Room Groups and even less so from the suppressUserList setting.
In particular: every time a User joins a Room the whole list of Room Variables is sent in the most up to date version to the client.
Also I think there is an incorrect assumption here:
I just wanted to point it out because I noticed you mentioned this behavior twice in the description.
Thanks
I am not sure why the described use case would not work. RoomVariables do not depend on Room Groups and even less so from the suppressUserList setting.
In particular: every time a User joins a Room the whole list of Room Variables is sent in the most up to date version to the client.
Also I think there is an incorrect assumption here:
Joining a Room does not trigger the subscription the relative Group, unless you do it manually and viceversa: leaveing a Room doesn't unsubscribe the User form that Room's Group.4. Make a user join room Alpha 1 (and consequently listens to Alpha room group)
I just wanted to point it out because I noticed you mentioned this behavior twice in the description.
Thanks