⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 connectorthread.java

📁 网站即时通讯系统
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
            cancelled = true;            return;        }        if (password == null) {            PasswordDialog dialog = new PasswordDialog(BuddyList.getInstance().getContainerFrame(),resources                    .getString("jabberPassword"));            password = dialog.getText();        }        if (gnupgSecretKey != null && !JBotherLoader.isGPGEnabled()) {            int result = JOptionPane                    .showConfirmDialog(                            null,                            "Warning: There is a GnuPG secrety key ID in your profile,\nbut it appears as though GnuPG is not installed on this system.\nWould you still like to connect to the server?",                            "GnuPG", JOptionPane.YES_NO_OPTION);            if (result != JOptionPane.YES_OPTION) {                BuddyList.getInstance().getStatusMenu()                        .stopBlinkTimer();                BuddyList.getInstance().init(null);                return;            }        }        else if ((gnupgSecretKey != null && JBotherLoader.isGPGEnabled())                && (BuddyList.getInstance().getGnuPGPassword() == null)) {            GnuPG gnupg = new GnuPG();            while (true) {                PasswordDialog dialog = new PasswordDialog(BuddyList.getInstance().getContainerFrame(),resources                        .getString("gnupgKeyPassword"));                gnupgTempPass = dialog.getText();                if ((gnupgTempPass != null)                        && (gnupg.sign("1", gnupgSecretKey, gnupgTempPass))) {                    BuddyList.getInstance().setGnuPGPassword(gnupgTempPass);                    break;                } else {                    BuddyList.getInstance().getStatusMenu()                            .stopBlinkTimer();                    Standard                            .warningMessage(null, "GnuPG Error",                                    "Wrong GnuPG passphrase! Please, try connecting again.");                    BuddyList.getInstance().init(null);                    BuddyList.getInstance().setGnuPGPassword(null);                    return;                }            }        }        if (cancelled) {            BuddyList.getInstance().getStatusMenu()                    .stopBlinkTimer();            cancelled = false;            connectCount = 0;            return;        }        try {            if (com.valhalla.settings.Arguments.getInstance().getProperty(                    "smackdebug") != null) {                XMPPConnection.DEBUG_ENABLED = true;            }            int port = this.port;            if (port == 0 && ssl) {                port = 5223;            } else if (port == 0 && !ssl) {                port = 5222;            }            // set up the connection            if (!ssl) {                connection = connection = new XMPPConnection(server, port);            } else {                connection = new SSLXMPPConnection(server, port);            }            BuddyList.getInstance().clearTree();            BuddyList.getInstance().init(connection);        } catch (Exception ex) {            errorMessage = ex.getMessage();        }        if (cancelled) {            BuddyList.getInstance().getStatusMenu()                    .stopBlinkTimer();            cancelled = false;            return;        }        // get the resource from the login box        String tmp = resource;        if (tmp == null || tmp.equals("")) {            tmp = "JBother";        }        final String resource = tmp;        if (errorMessage == null && connection != null) {            PacketFilter anyFilter = new PacketFilter() {                public boolean accept(Packet packet) {                    return true;                }            };            connection.addPacketListener(new AnyIncomingPacketListener(),                    anyFilter);            connection.addPacketWriterListener(                    new AnyOutcomingPacketListener(), anyFilter);            // sets up the various packet listeners            PacketFilter filter = new PacketTypeFilter(Presence.class);            connection.addPacketListener(new PresencePacketListener(), filter);            filter = new PacketTypeFilter(Message.class);            connection.addPacketListener(messageListener, filter);            connection.addConnectionListener(conListener);            filter = new PacketTypeFilter(Version.class);            connection.addPacketListener(new VersionListener(), filter);            filter = new PacketTypeFilter(LastActivity.class);            connection.addPacketListener(new LastActivityListener(), filter);            filter = new PacketTypeFilter(Time.class);            connection.addPacketListener(new TimeListener(), filter);            // this filter will listen to three types of messages:            // <si>, <streamhost> and <streamhost-used>            filter = new OrFilter(new PacketTypeFilter(Streamhost.class),                    new PacketTypeFilter(StreamhostUsed.class));            OrFilter filter2 = new OrFilter(new PacketTypeFilter(                    StreamInitiation.class), filter);            connection.addPacketListener( new StreamInitiationListener(),             filter2 );            // attempts to connect            try {                connection.login(username, password, resource);                //connection.getRoster().addRosterListener( rosterListener );                roster = connection.getRoster();                roster.setSubscriptionMode(                        Roster.SUBSCRIPTION_MANUAL);                eventManager = new MessageEventManager(connection);                eventManager                        .addMessageEventNotificationListener(new EventNotificationListener());                eventManager                        .addMessageEventRequestListener(new EventRequestListener());                MultiUserChat.addInvitationListener(connection,                        new InvitationPacketListener());            } catch (XMPPException e) {                errorMessage = e.getMessage();                if (e.getXMPPError() != null) {                    errorMessage = resources.getString("xmppError"                            + e.getXMPPError().getCode());                }            }        }        // if there was an error, display it, and then redisplay a LoginDialog        if (errorMessage != null || connection == null) {	    resetCredentials();            SwingUtilities.invokeLater( new Runnable()                {                    public void run()                    {                        BuddyList.getInstance().getStatusMenu()                                .setModeChecked(null);                    }                } );            if (connection != null) {                connection.removeConnectionListener(conListener);            }            if (persistent) {                try {                    Thread.sleep(connectCount*5000);                } catch (InterruptedException ex) {                    com.valhalla.Logger.logException(ex);                }                com.valhalla.Logger.debug("Connection error was: "                        + errorMessage);                errorMessage = null;                if (cancelled) {                    cancelled = false;                    BuddyList.getInstance().getStatusMenu()                            .stopBlinkTimer();                    connectCount = 0;                    return;                }                messageListener.resetQueue();                com.valhalla.Logger.debug( "Retrying, attempt #" + connectCount );                connectCount++;                run();                return;            }            password = Settings.getInstance().getProperty("password");            BuddyList.getInstance().getStatusMenu()                    .stopBlinkTimer();            if (errorMessage == null) {                errorMessage = resources.getString("connectionError");            }            if (errorMessage.equals("Unauthorized")) {                errorMessage = new String(resources                        .getString("invalidPassword"));            }            Standard.warningMessage(null, resources                    .getString("couldNotConnect"), errorMessage);            BuddyList.getInstance().init(null);            return;        }        /*if( roster != null )        {            Iterator entries = roster.getEntries();            while( entries.hasNext() )            {                RosterEntry entry = (RosterEntry)entries.next();                BuddyStatus buddy = BuddyList.getInstance().getBuddyStatus( entry.getUser() );                buddy.getName();            }        }*/        SwingUtilities.invokeLater( new Runnable() {                public void run()                {                    BuddyList.getInstance().getStatusMenu().stopBlinkTimer();                    BuddyList.getInstance().getBuddiesMenu().logOn();                    // otherwise, set up and display the buddy list                    com.valhalla.Logger.debug("Connected");                    BuddyList.getInstance().startTimer();                    BuddyList.getInstance().getStatusMenu().setModeChecked(                            connectMode);                    BuddyList.getInstance().initBuddies();                    // display the buddies                    BuddyList.getInstance().setStatus(connectMode, statusString, false);                    messageListener.startTimer();                    if (away) {                        BuddyList.getInstance().getAwayHandler().actionPerformed(                                new ActionEvent(BuddyList.getInstance(), 1, "away"));                    }                    roster.reload();                }        } );        return;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -