Ejemplo n.º 1
0
 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());
   }
 }