package com.zy.core.netty.handle; import com.zy.core.netty.AbstractInboundHandler; import com.zy.core.netty.cache.ChannelCache; import com.zy.core.netty.constant.FireDataType; import com.zy.core.netty.domain.ChPackage; import com.zy.core.netty.domain.fire.Fire_3030; import io.netty.channel.Channel; import io.netty.channel.ChannelHandler; import io.netty.channel.ChannelHandlerContext; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; /** * 国标业务处理handler * Created by vincent on 2019-04-02 */ @Slf4j @Component @ChannelHandler.Sharable public class PackageServerHandler extends AbstractInboundHandler { @Override protected boolean channelRead0(ChannelHandlerContext ctx, ChPackage pac) { FireDataType dataType = FireDataType.get(pac.getBytes()[1], pac.getBytes()[2]); switch (dataType) { case HEARTBEAT: Fire_3030 fire3030 = new Fire_3030().readFromBytes(pac.getBytes()); break; case FIRE_ALARM: break; default: break; } return true; } /** * 数据下行 */ public static void write(ChPackage chPackage){ String uuid = chPackage.getUuid(); Channel channel = ChannelCache.getChannel(uuid); if (null == channel){ log.warn("通道uuid={} 不在线", uuid); return; } channel.writeAndFlush(chPackage); } }