zoukankan      html  css  js  c++  java
  • Spark研究笔记6:重要的工厂类SessionManager(原创) CVT

    SessionManager负责xmppconnection 连接会话处理比如处理连接错误添加会议监听检索用户连接,等。

    SessionManager实现了接口ConnectionListener,ConnectionListener的定义:

    public interface ConnectionListener {

        public void connectionClosed();

        public void connectionClosedOnError(Exception e);
       
        public void reconnectingIn(int seconds);

        public void reconnectionSuccessful();

        public void reconnectionFailed(Exception e);
    }

    可以看出,ConnectionListener定义了关闭、重连、失败等操作。

    SessionManagersession初始化,

    /**
         * Initializes session.
         *
         * @param connection the XMPPConnection used in this session.
         * @param username   the agents username.
         * @param password   the agents password.
         */
        public void initializeSession(XMPPConnection connection, String username, String password) {
            this.connection = connection;
            this.username = username;
            this.password = password;
            this.userBareAddress = StringUtils.parseBareAddress(connection.getUser());
    
            // create workgroup session
            personalDataManager = new PrivateDataManager(getConnection());
    
            // Discover items
            discoverItems();
    
    
            ProviderManager.getInstance().addExtensionProvider("event", "http://jabber.org/protocol/disco#info", new Features.Provider());
        }

    设置discoverItems ,DiscoverItems 是一个IQ包,用于请求和接受相关 XMPP 实体,另外,它能被寻址查询,比如通过JID,或者节点名。

    /**
         * Does the initial service discovery.
         */
        private void discoverItems() {
            ServiceDiscoveryManager disco = ServiceDiscoveryManager.getInstanceFor(SparkManager.getConnection());
            try {
                discoverItems = disco.discoverItems(SparkManager.getConnection().getServiceName());
            }
            catch (XMPPException e) {
                Log.error(e);
                discoverItems = new DiscoverItems();
            }
        }

     

  • 相关阅读:
    iOS开发UI篇—控制器的View的创建
    iOS开发UI篇—控制器的创建
    OS开发UI篇—UIWindow简单介绍
    iOS开发UI篇—使用storyboard创建导航控制器以及控制器的生命周期
    A1089. Insert or Merge
    A1044. Shopping in Mars
    A1010. Radix
    A1085. Perfect Sequence
    散列、贪心总结
    A1038. Recover the Smallest Number
  • 原文地址:https://www.cnblogs.com/openfire/p/3047614.html
Copyright © 2011-2022 走看看