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

     

  • 相关阅读:
    Yii2 框架目录
    实现超链接在本页面的跳转
    操作系统
    shell笔记
    软RAID5制作流程
    nginx学习之简化安装篇(一)
    Javascript中实现继承的方式
    JavaScript中的函数和C#中的匿名函数(委托、lambda表达式)
    JavaScript中变量、执行环境、作用域与C#中的异同
    Javascript与C#对变量的处理方式
  • 原文地址:https://www.cnblogs.com/openfire/p/3047614.html
Copyright © 2011-2022 走看看