package com.zy.core.netty.handle;
|
|
import com.zy.core.netty.AbstractInboundHandler;
|
import com.zy.core.netty.cache.ChannelCache;
|
import com.zy.core.netty.domain.ChPackage;
|
import com.zy.core.netty.properties.TcpProperties;
|
import com.zy.core.properties.SlaveProperties;
|
import io.netty.channel.Channel;
|
import io.netty.channel.ChannelHandler;
|
import io.netty.channel.ChannelHandlerContext;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Component;
|
|
/**
|
* 国标业务处理handler
|
* Created by vincent on 2019-04-02
|
*/
|
@Slf4j
|
@Component
|
@ChannelHandler.Sharable
|
public class PackageServerHandler extends AbstractInboundHandler<ChPackage> {
|
|
@Autowired
|
private SlaveProperties slaveProperties;
|
@Autowired
|
private TcpProperties tcpProperties;
|
|
@Override
|
protected boolean channelRead0(ChannelHandlerContext ctx, ChPackage pac) {
|
byte[] bytes = pac.getBytes();
|
System.out.println("客户端断开===>>" + new String(bytes, 0, bytes.length));
|
|
// log.info("读码器【IP:{}】 上行数据 ===>> {}", pac.getIp(), pac.getAscii());
|
// //扫码上传数据格式必须2个#开头,如:##12345678
|
// String msg = pac.getAscii().replaceAll("#", "");
|
// if(!Cools.isEmpty(msg) && msg.length()>=tcpProperties.getBarcodeLen()){
|
// msg = msg.substring(0,tcpProperties.getBarcodeLen());
|
//
|
// for (Slave slave : slaveProperties.getBarcode()) {
|
// if (slave.getIp().equals(pac.getIp())) {
|
// BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, slave.getId());
|
// if (barcodeThread == null) { continue; }
|
// barcodeThread.setBarcode(msg);
|
// 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);
|
}
|
}
|