Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Solved
  • Unsolved
  • Users
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (Darkly)
  • No Skin
Collapse
brainCloud Forums
  1. Home
  2. General
  3. Reconnect to room on a Relay Server

Reconnect to room on a Relay Server

Scheduled Pinned Locked Moved Unsolved General
30 Posts 3 Posters 20.0k Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • A Offline
    A Offline
    Alessio Falsetti
    wrote on last edited by
    #4

    Hello Paul,
    this is my scenario:

    • player A and player B enter the lobby
    • the lobby is set to READY and the ROOM_ASSIGNED and ROOM_READY events arrive
    • both players enter the ROOM and then start playing
    • in the meantime the lobby is DISBANDED ("Disband on start" is true)
    • player B disconnects for network reasons, player A receives the notification that the opponent has disconnected
    • player B tries to connect again to the room where player A is still present, but receives the error:
      {"status":403,"reason_code":90300,"status_message":"Relay: Disconnected by server","severity":"ERROR"}. Player B uses the same access data received from ROOM_ASSIGNED (host, port, passcode)

    We are using Unity and the client version of BC is 5.0.0.

    Another question: is one server instantiated per ROOM, or can a single server host multiple ROOMs?

    Thanks!

    Alessio

    1 Reply Last reply
    0
    • Paul WinterhalderP Online
      Paul WinterhalderP Online
      Paul Winterhalder
      brainCloudAdmin
      wrote on last edited by
      #5

      Hi Alessio,

      Thanks for the use case clarification - our folks are attempting to replicate the scenario. Certainly the intention is that that reconnect should work - the Relay Server should have the initial collection of members from the lobby cached.

      Question - how are you disconnecting "Player B" for network reasons? Would it involve them re-authenticating - and thus getting a new brainCloud session? (If so - that changes the id we call their "cx" - which combines their profileId:sessionId - and is likely the reason the reconnect is failing).

      If they were to reconnect without re-authenticating - it would probably work...

      (Note - we haven't confirmed that yet - but it's our working theory.)

      And to answer your question - yes, a server can host multiple rooms. It is controlled via the "Containers Per Server" property when defining the server on the My Servers page.

      Paul.

      1 Reply Last reply
      0
      • Greg MouldsG Offline
        Greg MouldsG Offline
        Greg Moulds
        brainCloudAdmin
        wrote on last edited by
        #6

        Also Alessio, can you confirm whether your lobby type has the "Allow join in progress" Rule enabled or disabled? That's also relevant. Thanks!

        1 Reply Last reply
        0
        • A Offline
          A Offline
          Alessio Falsetti
          wrote on last edited by
          #7

          Hi Paul & Greg,

          1. player B re-authenticates, so I assume that his "cx" changes. Is it possible to ensure that the player can re-enter the room even by re-authenticating? If you have a unique passcode, could you use that?

          2. "Allow join in progress" is true

          Regarding the number of rooms, so in practice you can have a maximum of 2500 simultaneous rooms (50 "Max servers" x 50 "Containers per Server"), right?

          Thank you!

          1 Reply Last reply
          0
          • Paul WinterhalderP Online
            Paul WinterhalderP Online
            Paul Winterhalder
            brainCloudAdmin
            wrote on last edited by Paul Winterhalder
            #8

            Hi Alessio,

            I think we've identified your test app and lobby. We believe that both

            Disband at Start

            Allow join in progress

            are enabled for that lobby. Unfortunately - they shouldn't be - this is a regression in Portal-X - it should be disallowing that combo.

            So what we believe is happening is player B is re-authenticating before attempting to re-connect.

            Because Player B now has a new session, he/she also has a new connection id (i.e. cx) - and the Relay Server seems them as a new person.

            Because "Allow Join in Progress" is enabled - the Relay Server attempts to contact the lobby to see if this user is valid - but that lobby doesn't exist anymore - and we get the error you are seeing... (which is maybe not the best error message).

            Disabling "Allow join in progress" will result in a more understandable error message - but probably won't fix the problem.

            The real trick to this scenario would be for the network re-connect to the room server to happen without recreating the CX - but depending upon the type of network failure that is probably unavoidable.

            The devs are looking into options.

            Paul.

            1 Reply Last reply
            0
            • A Offline
              A Offline
              Alessio Falsetti
              wrote on last edited by
              #9

              Thanks Paul, I really appreciate it.
              Bear in mind that the player could also disconnect due to a crash or the mobile device being turned off, so the possibility of re-entering the room even after having performed a new authentication would be very very important.

              Please let me know!

              Alessio

              1 Reply Last reply
              0
              • Paul WinterhalderP Online
                Paul WinterhalderP Online
                Paul Winterhalder
                brainCloudAdmin
                wrote on last edited by
                #10

                Also Alessio,

                Agreed with your scenario - we are prioritizing a improvement to deal with that scenario for you.

                Also that maximum # of servers is a limit that we can control per-app - so we can bump that up.

                Paul.

                1 Reply Last reply
                0
                • A Offline
                  A Offline
                  Alessio Falsetti
                  wrote on last edited by
                  #11

                  Hi @Paul-Winterhalder, any chance to have new developments regarding reconnection in the room?

                  1 Reply Last reply
                  0
                  • Paul WinterhalderP Online
                    Paul WinterhalderP Online
                    Paul Winterhalder
                    brainCloudAdmin
                    wrote on last edited by
                    #12

                    Hi @Alessio-Falsetti - checking with the devs.

                    I believe we have a short-term Relay Server patch that makes reconnecting generally more reliable -- but also a change for 5.2 that can allow reconnecting across sessions... (that will be an option for the dev to enable).

                    5.2 is currently targeting mid-to-late February for release.

                    1 Reply Last reply
                    0
                    • A Offline
                      A Offline
                      Alessio Falsetti
                      wrote on last edited by
                      #13

                      Great! Happy to hear that!

                      1 Reply Last reply
                      0
                      • A Offline
                        A Offline
                        Alessio Falsetti
                        wrote on last edited by
                        #14

                        Ciao @Paul-Winterhalder, @Greg-Moulds,
                        I have updated BC to 5.2, so I can implement the rejoin in the room. But it's not clear to me how to implement it. The only information I found is in the release notes where it only says this:

                        Reconnects - Relay Servers now better handling reconnect scenarios. There is also an option to allow reconnects even if the user’s session has changed ("ALLOW_REJOIN_BY_PROFILE_ID": "true").

                        How does it work?

                        Thanks!

                        1 Reply Last reply
                        0
                        • Greg MouldsG Offline
                          Greg MouldsG Offline
                          Greg Moulds
                          brainCloudAdmin
                          wrote on last edited by
                          #15

                          Hey @Alessio-Falsetti . In order to enable that feature, you need to update the "Custom Environment" settings for the appropriate "My Servers" definition:

                          image.png

                          1 Reply Last reply
                          0
                          • A Offline
                            A Offline
                            Alessio Falsetti
                            wrote on last edited by
                            #16

                            Hi @Greg-Moulds ,
                            ok, I've updated the custom environment of my server, and now? If I try to rejoin the room, I receive alway this error:
                            "status":403,"reason_code":90300,"status_message":"Server Closed Connection","severity":"ERROR"}.

                            I'm using:
                            RelayService.Connect(RelayConnectionType.TCP, connectionOptions, null, failureCallback);

                            What should I do?
                            Thanks!

                            1 Reply Last reply
                            0
                            • Greg MouldsG Offline
                              Greg MouldsG Offline
                              Greg Moulds
                              brainCloudAdmin
                              wrote on last edited by
                              #17

                              Hmm... 🤔 Let me poke around.

                              1 Reply Last reply
                              0
                              • Greg MouldsG Offline
                                Greg MouldsG Offline
                                Greg Moulds
                                brainCloudAdmin
                                wrote on last edited by
                                #18

                                So a question for you... are you able to connect initially and it's failing on the reconnect? Or are you failing to connect at all?

                                1 Reply Last reply
                                0
                                • Greg MouldsG Offline
                                  Greg MouldsG Offline
                                  Greg Moulds
                                  brainCloudAdmin
                                  wrote on last edited by
                                  #19

                                  I'm assuming from your statement "if I try to rejoin the room" that you've connected successfully initially.

                                  1 Reply Last reply
                                  0
                                  • A Offline
                                    A Offline
                                    Alessio Falsetti
                                    wrote on last edited by
                                    #20

                                    Yes, works well first time.

                                    1 Reply Last reply
                                    0
                                    • A Offline
                                      A Offline
                                      Alessio Falsetti
                                      wrote on last edited by
                                      #21

                                      However, reconnection doesn't work.

                                      1 Reply Last reply
                                      0
                                      • Greg MouldsG Offline
                                        Greg MouldsG Offline
                                        Greg Moulds
                                        brainCloudAdmin
                                        wrote on last edited by
                                        #22

                                        Ok thanks @Alessio-Falsetti . We're still looking into it so I'll let you know when we have an update.

                                        1 Reply Last reply
                                        0
                                        • Greg MouldsG Offline
                                          Greg MouldsG Offline
                                          Greg Moulds
                                          brainCloudAdmin
                                          wrote on last edited by
                                          #23

                                          @Alessio-Falsetti Next question... what are your "Disband on start" and "Allow join in progress" settings for this lobby type?

                                          1 Reply Last reply
                                          0

                                          Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                          Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                          With your input, this post could be even better 💗

                                          Register Login
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Solved
                                          • Unsolved
                                          • Users