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 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器