承接上文代碼,在服務端:
//新客戶端接入 @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個客戶端