mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-05-06 19:10:20 +08:00
阻止重复帧
This commit is contained in:
@@ -9,6 +9,7 @@ import com.jsowell.common.enums.ykc.PileChannelEntity;
|
|||||||
import com.jsowell.common.util.BytesUtil;
|
import com.jsowell.common.util.BytesUtil;
|
||||||
import com.jsowell.common.util.CRC16Util;
|
import com.jsowell.common.util.CRC16Util;
|
||||||
import com.jsowell.common.util.DateUtils;
|
import com.jsowell.common.util.DateUtils;
|
||||||
|
import com.jsowell.common.util.YKCUtils;
|
||||||
import io.netty.channel.ChannelHandlerContext;
|
import io.netty.channel.ChannelHandlerContext;
|
||||||
import org.springframework.beans.factory.InitializingBean;
|
import org.springframework.beans.factory.InitializingBean;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -91,9 +92,11 @@ public abstract class AbstractYkcHandler implements InitializingBean {
|
|||||||
protected boolean verifyTheDuplicateRequest(YKCDataProtocol ykcDataProtocol, ChannelHandlerContext ctx) {
|
protected boolean verifyTheDuplicateRequest(YKCDataProtocol ykcDataProtocol, ChannelHandlerContext ctx) {
|
||||||
// 获取序列号域
|
// 获取序列号域
|
||||||
int serialNumber = BytesUtil.bytesToIntLittle(ykcDataProtocol.getSerialNumber());
|
int serialNumber = BytesUtil.bytesToIntLittle(ykcDataProtocol.getSerialNumber());
|
||||||
|
// 获取帧类型
|
||||||
|
String frameTypeStr = YKCUtils.frameType2Str(ykcDataProtocol.getFrameType());
|
||||||
// 获取channelId
|
// 获取channelId
|
||||||
String channelId = ctx.channel().id().asShortText();
|
String channelId = ctx.channel().id().asShortText();
|
||||||
String redisKey = "Request_" + channelId + "_" + serialNumber;
|
String redisKey = "Request_" + channelId + "_" + frameTypeStr;
|
||||||
Boolean result = redisCache.setnx(redisKey, ykcDataProtocol.getHEXString(), 30);
|
Boolean result = redisCache.setnx(redisKey, ykcDataProtocol.getHEXString(), 30);
|
||||||
// result返回false说明没有设置成功,就是说已经有相同请求了,所以返回true重复
|
// result返回false说明没有设置成功,就是说已经有相同请求了,所以返回true重复
|
||||||
return !result;
|
return !result;
|
||||||
|
|||||||
Reference in New Issue
Block a user