承接上文代码,在服务端:
//新客户端接入 @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个客户端