public void run() { while (true) { MinaNode node = (MinaNode) BisonContext.this.connectQueue.poll(); if ((node == null) && (BisonContext.this.connectQueue.size() == 0)) { BisonContext.this.processor = null; break; } ConnectFuture cf = BisonContext.this.connector.connect(node.getRemoteAddress()); cf.awaitUninterruptibly(); if (!cf.isConnected()) { BisonContext.this.logger.info("建立连接失败 " + node.toString()); try { if (BisonContext.this.connectQueue.size() == 0) Thread.sleep(5000L); else Thread.sleep(1000L); } catch (Exception localException) { } BisonContext.this.connectQueue.offer(node); continue; } cf.getSession().setAttribute(SESSION_NODE_KEY, node); node.setSession(cf.getSession()); node.setConnected(true); BisonContext.this.logger.info("建立连接成功 " + node.toString()); } }