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();
            }
        }

     

  • 相关阅读:
    [CDQ分治][Treap][树状数组]JZOJ 4419 Hole
    [数论]JZOJ 4421 aplusb
    [LCA]JZOJ 3717 火车
    [数位DP]JZOJ 3363 Number
    user模块User表
    数据库配置
    后台配置
    后台:Django项目创建
    虚拟环境的搭建
    luffy 那点事
  • 原文地址:https://www.cnblogs.com/openfire/p/3047614.html
Copyright © 2011-2022 走看看