Join() public method

public Join ( ) : bool
return bool
Exemplo n.º 1
0
        void Update()
        {
            try {
                // Get an instance of the SessionManager if one does not exist.
                if (sessionManager == null && SharingStage.Instance != null && SharingStage.Instance.Manager != null)
                {
                    this.sessionManager = SharingStage.Instance.Manager.GetSessionManager();
                }

                // If we are a Primary Client and can join sessions...
                if (this.sessionManager != null && sessionManager.GetSessionCount() > 0)
                {
                    // Check to see if we aren't already in the desired session
                    Session currentSession = this.sessionManager.GetCurrentSession();

                    if (currentSession == null ||                                                       // We aren't in any session
                        currentSession.GetName().GetString() != this.SessionName ||                     // We're in the wrong session
                        currentSession.GetMachineSessionState() == MachineSessionState.DISCONNECTED)    // We aren't joined or joining the right session
                    {
                        Debug.Log("Session conn " + sessionManager.IsServerConnected() + " sessions: " + sessionManager.GetSessionCount());
                        Debug.Log("Looking for " + SessionName);
                        bool sessionFound = false;

                        for (int i = 0; i < this.sessionManager.GetSessionCount(); ++i)
                        {
                            Session s = this.sessionManager.GetSession(i);
                            Debug.Log(string.Format("session {0}", s.GetName().GetString()));

                            if (s.GetName().GetString() == this.SessionName)
                            {
                                s.Join();
                                sessionFound = true;
                                break;
                            }
                        }
                        if (sessionManager.IsServerConnected() && !sessionFound)
                        {
                            Debug.Log("Didn't find session, making a new one");
                            sessionManager.CreateSession(new XString(SessionName));

                            for (int i = 0; i < this.sessionManager.GetSessionCount(); ++i)
                            {
                                Session s = this.sessionManager.GetSession(i);
                                if (s.GetName().GetString() == this.SessionName)
                                {
                                    s.Join();
                                    Debug.Log("Joining our new session");
                                    sessionFound = true;
                                    break;
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine(e);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        ///  Join the specified session.
        /// </summary>
        /// <param name="session">Session to join.</param>
        /// <returns>True if the session is being joined or is already joined.</returns>
        public bool JoinSession(Session session)
        {
            // TODO Should prevent joining multiple sessions at the same time
            if (session != null)
            {
                return(session.IsJoined() || session.Join());
            }

            return(false);
        }