Zanciscoco 2019-04-27 21:17 采纳率: 0%
浏览 1118

netty服务器端,主送发送指令,如果对方客户端未收到,如何设置重新发送??

主动发送指令后,客户端未给对应的回执,在服务器端如何判断对方没有回复指令并且重新发送

  • 写回答

2条回答 默认 最新

  • 强化脑细胞 2019-04-28 10:33
    关注

    包上public class MessageHandler extends ChannelInboundHandlerAdapter implements ChannelOutboundHandler {
    重写方法
    @Override
    public void channelActive(ChannelHandlerContext ctx) throws Exception {
    Map newMap = new HashMap<>();
    // 每隔三秒重发一次消息
    ctx.executor().scheduleAtFixedRate(() -> {
    if (map.size() > 0) {
    map.forEach((k, v) -> {
    ctx.writeAndFlush(v.data);
    v.times = v.times + 1;
    if (v.times < 3) {
    // 保留未发送三次的。
    newMap.put(v.id, v);
    }
    });
    }
    map = newMap;
    }, 3, 3, TimeUnit.SECONDS);
    }
    按照方法实现你自己的业务逻辑

    评论

报告相同问题?

悬赏问题

  • ¥15 安装svn网络有问题怎么办
  • ¥15 Python爬取指定微博话题下的内容,保存为txt
  • ¥15 vue2登录调用后端接口如何实现
  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥15 latex怎么处理论文引理引用参考文献