我已经使用apache mina成功实现了服务器客户端 . 解决方案是,客户端向服务器发送ping,然后服务器响应客户端,运行正常 . 我两边都有处理程序 .

现在,我想在客户端实现重新连接机制,重新连接代码如下

boolean reconnectFinalStatus=false;
    _logger.info("Session-"+session.getId()+"with Server-"+socketServerId+" is closed ["+session.isActive()+","+session.isConnected()+","+session.isClosing());
    if(reconnectAttempts > 0 && connector!=null) 
    {
        _logger.info("Reconnecting to Server-"+socketServerId+" reattempts configured is "+reconnectAttempts+" with reconnect interval being(in secs) "+reconnectInterval);

        for(int i=1;i<=reconnectAttempts;i++)
        {
            _logger.info("Reconnect with Server-"+socketServerId+" reattempts ["+i+"] in progress");
            ConnectFuture future=connector.connect(session.getRemoteAddress());
            IoSession session1=future.getSession();
            if(session1!=null)
            {
                _logger.info("Session-"+session1.getId()+"with Server-"+socketServerId+" reattempts ["+i+"] is successfull");
                reconnectFinalStatus=true;
                break;
            }
            else
            {
                _logger.info("Reconnect with Server-"+socketServerId+" reattempt ["+i+"] failed");
                _logger.info("Reconnect with Server-"+socketServerId+" next reattempts will be tried after "+reconnectInterval +" secs");
                Thread.sleep(reconnectInterval*1000);
            }
        }
    }
    else
    {
        reconnectFinalStatus=false;
    }
    if(!reconnectFinalStatus)//reconnect has failed, means false
    {
        _logger.info("Session-"+session.getId()+"with Server-"+socketServerId+", raising socket close event");
        EventMessage eventMessage=new EventMessage();
        eventMessage.setEventName("Socket Input Close Event");
        eventMessage.setEventSourceId(pingSourceId);
        eventMessage.setEventSourceName(pingSource);
        eventMessage.setSocketServerId(socketServerId);
        socketEventRegistrar.raiseEvents(eventMessage);
        _logger.info("Session-"+session.getId()+"with Server-"+socketServerId+" is closed, event raised successfully");
    }
}

这没有按预期工作 .

任何帮助表示赞赏

谢谢Arpit