先说我的业务场景,项目中我自己是Client端,发给Server端消息,再传回前端,使用的是Netty4.1.36Final
我把发送心跳包的和业务调用(使用的同步调用)的writeAndFlush分开了 其他无关代码就不贴了,上主要代码
首先我在userEventTriggred中使用ctx.writeAndFlush()方法也就是发送心跳包
业务逻辑处理是在同步调用中使用channel.writeAndFlush()方法,看下图
然后导致我重连后,心跳包还是照常能发送,但是业务逻辑调用的channel.writeAndFlush()发送不出消息,这里就是ctx.writeAndFlush()和channel.writeAndFlush()的不同了,传送门https://blog.csdn.net/FishSeeker/article/details/78447684
这里详解了两个方法的区别,也就是我调用channel.writeAndFlush()导致了死循环,发送不出消息,problem solved!