java mina 服务器,Apache Mina:如何实现客户端重新连接到服务器

本文介绍了一个基于Apachemina实现的服务器客户端应用案例,并详细展示了客户端的重连机制实现代码。作者尝试通过循环进行重连操作,但遇到了未能按预期工作的状况。

我已经使用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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值