承接上文代码,在服务端:
//新客户端接入
@Override
public void channelActive(ChannelHandlerContext ctx) throws Exception {
System.out.println("channelActive");
Server4.CHANNEL_GROUP.add(ctx.channel());
}
public static ChannelGroup CHANNEL_GROUP = new DefaultChannelGroup("ChannelGroups", GlobalEventExecutor.INSTANCE);
//读取客户端发送的数据
@Override
protected void channelRead0(ChannelHandlerContext ctx, BaseBean msg) throws Exception {
System.out.println("RESPONSE--------"+msg.toString());
ctx.writeAndFlush(msg);
if(msg.getNo().equals(5)) {
BaseBean baseBean = new BaseBean();
baseBean.setRandom("共有"+Server4.CHANNEL_GROUP.size()+"个客户端接收广播");
Server4.CHANNEL_GROUP.writeAndFlush(baseBean);
}
}
调试:
先开启三个客户端:

关掉第1、第2个客户端,在重新打开第1个客户端

