photon is making variable of the room automatically false

Hi.

After 20-25 mins of game play photon is making isOpen=false and isVisible=false. Due to that rejoin of the payer not working and failing with message no room exist.


we have make sure that same user is joining into the same photon room still we are hitting this issue.

we are taking care EmptyRoomTtl which room empty time is 5 Mins and playerTTl is 3 mins.


We have tried a lot and kind of blocked with this issue.

Answers

  • I saw your question in Discord, too. If you must crosspost, please include links or tell us otherwise that you asked in other channels, too. In best case, avoid crossposting. Thanks.

    For players, who are still in the room, a rejoin is possible, even if the room is closed and invisible (in matchmaking). You may want to set a PlayerTTL to extend how long someone can rejoin and after a disconnect, you may want to use ReconnectAndRejoin.

    There is no code to randomly close rooms but if you fill the event caches and or properties (topic: sending too much), the room may indeed get closed. You may want to check if you sent lots.

  • Thanks for your response Tobias. And sorry for crosspost related mistake from my side, will keep in mind and wont in two places.


    How do i check event cache size or other related properties.

    Is there a way i can find how much data inside the custom properties we have pushed to photon, so that we can try minimising, this 10 KB will count only data set using SetCustomProperties?

    is there limit of no of photon RPC call concurrently. Does this 10 KB limit for entire duration of the game or one RPC call?

  • Tobias
    Tobias admin
    edited November 2022

    Sadly, it is a bit of work to get specific numbers, so usually you'd try to not let it grow by much and test.

    Anything in the cache will have to be sent to joining clients, so it is good practice to keep it lean anyway.

    If you want to, you can accumulate the stats every time you send something. There is the ByteCountLastOperation (in the LoadBalancingClient.LoadBalancingPeer) which you could check after raising an event that is being cached.