代码优化

This commit is contained in:
zhongzb
2023-05-04 21:24:36 +08:00
parent 8e4ad31ad0
commit c8369e31a1
6 changed files with 13 additions and 9 deletions

View File

@@ -80,7 +80,7 @@ public class JwtUtils {
public Long getUidOrNull(String token) {
return Optional.ofNullable(verifyToken(token))
.map(map -> map.get(UID_CLAIM))
.map(Claim::asLong)
.map(Claim::asLong)
.orElse(null);
}

View File

@@ -45,7 +45,7 @@ public class RedisUtils {
public static Long inc(String key, int time, TimeUnit unit) {
RedisScript<Long> redisScript = new DefaultRedisScript<>(LUA_INCR_EXPIRE, Long.class);
return stringRedisTemplate.execute(redisScript, Collections.singletonList(key), unit.toSeconds(time));
return stringRedisTemplate.execute(redisScript, Collections.singletonList(key), String.valueOf(unit.toSeconds(time)));
}
/**

View File

@@ -61,15 +61,16 @@ public class ChatController {
@PostMapping("/msg")
@ApiOperation("发送消息")
@FrequencyControl(time = 5,count = 2)
@FrequencyControl(time = 30,count = 5)
@FrequencyControl(time = 60,count = 10)
@FrequencyControl(time = 5,count = 2,target = FrequencyControl.Target.UID)
@FrequencyControl(time = 30,count = 5,target = FrequencyControl.Target.UID)
@FrequencyControl(time = 60,count = 10,target = FrequencyControl.Target.UID)
public ApiResult<IdRespVO> sendMsg(@Valid @RequestBody ChatMessageReq request) {
return ApiResult.success(IdRespVO.id(chatService.sendMsg(request, RequestHolder.get().getUid())));
}
@PutMapping("/msg/mark")
@ApiOperation("消息标记")
@FrequencyControl(time = 20,count = 3,target = FrequencyControl.Target.UID)
public ApiResult<Void> setMsgMark(@Valid @RequestBody ChatMessageMarkReq request) {//分布式锁
chatService.setMsgMark(RequestHolder.get().getUid(),request);
return ApiResult.success();

View File

@@ -77,6 +77,6 @@ public class LoginServiceImpl implements LoginService {
@Override
public Long getValidUid(String token) {
return verify(token) ? jwtUtils.getUidOrNull(token) : null;
return jwtUtils.getUidOrNull(token);
}
}

View File

@@ -51,6 +51,9 @@ public class WebSocketServiceImpl implements WebSocketService {
* 所有已连接的websocket连接列表和一些额外参数
*/
private static final ConcurrentHashMap<Channel, WSChannelExtraDTO> ONLINE_WS_MAP = new ConcurrentHashMap<>();
public static ConcurrentHashMap<Channel, WSChannelExtraDTO> getOnlineMap(){
return ONLINE_WS_MAP;
}
public static final int EXPIRE_SECONDS = 60 * 60;
@Autowired

View File

@@ -46,11 +46,11 @@ public class NettyWebSocketServer {
* 销毁
*/
@PreDestroy
public void destroy() throws InterruptedException {
public void destroy() {
Future<?> future = bossGroup.shutdownGracefully();
Future<?> future1 = workerGroup.shutdownGracefully();
future.sync();
future1.sync();
future.syncUninterruptibly();
future1.syncUninterruptibly();
log.info("关闭 ws server 成功");
}