Esempio n. 1
0
        /// <summary>
        ///   Opens a new Session with the given connection parameters
        /// </summary>
        /// <param name = "connectionString">Connection parameters</param>
        public IXmppSession Open(string connectionString)
        {
            if (connection != null && connection.State == XmppConnectionState.Open)
            {
                throw new XmppException("The session is already open");
            }

            State = XmppSessionState.LoggingIn;

            // Wire XmppConnection events
            Subscribe();

            // Perform the authentication
            connection.Open(connectionString);

            if (connection != null && connection.State == XmppConnectionState.Open)
            {
                // Send Roster Request
                Roster.RequestRosterList();

                // Set initial Presence status
                Presence.SetInitialPresence();

                // Advertise Capabilities
                Capabilities.AdvertiseCapabilities();

                // Discover server services
                ServiceDiscovery.DiscoverServices();

                // Discover personal eventing support
                PersonalEventing.DiscoverSupport();

                // Set as Logged In
                State = XmppSessionState.LoggedIn;
            }
            else
            {
                State = XmppSessionState.Error;
            }

            return(this);
        }