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

