|
@@ -329,8 +329,10 @@ public class KfMsgWebsocketHandler implements WebSocketHandler {
|
|
|
.build());
|
|
|
//以防锁依然存在, 尝试释放锁, 锁如果不存在, 会抛出异常, 直接捕获不处理
|
|
|
try {
|
|
|
+ log.error("结束会话释放锁, key : {}", RedisKeyConstant.KF_MSG_USER_CONNECT_JOIN + kfRoom.getOpenId());
|
|
|
distributedLockComponent.unlock(RedisKeyConstant.KF_MSG_USER_CONNECT_JOIN + kfRoom.getOpenId());
|
|
|
- } catch (Exception ignored) {
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("结束会话释放锁异常, key : {}, e : {}", RedisKeyConstant.KF_MSG_USER_CONNECT_JOIN + kfRoom.getOpenId(), e.getMessage());
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -388,12 +390,14 @@ public class KfMsgWebsocketHandler implements WebSocketHandler {
|
|
|
//玩家信息, 判断玩家是否已经被接入
|
|
|
KfSessionUser kfSessionUser = kfSessionUserService.getById(param.getOpenId());
|
|
|
if (!kfSessionUser.getIsWait()) {
|
|
|
- this.sendMessage(session, KfWebSocketMsgDTO.fail(param.getWebSocketMsgType(), "玩家已被其他客服接入"));
|
|
|
+ this.sendMessage(session, KfWebSocketMsgDTO.fail(param.getWebSocketMsgType(), "玩家已被其他客服接入, 非待接入状态"));
|
|
|
return;
|
|
|
}
|
|
|
//触发玩家接入线程锁
|
|
|
+ log.error("玩家接入触发线程锁, key : {}", RedisKeyConstant.KF_MSG_USER_CONNECT_JOIN + param.getOpenId());
|
|
|
if (!distributedLockComponent.doLock(RedisKeyConstant.KF_MSG_USER_CONNECT_JOIN + param.getOpenId(),
|
|
|
0L, 3L, TimeUnit.MINUTES)) {
|
|
|
+ log.error("玩家接入线程锁, 锁定中, key : {}", RedisKeyConstant.KF_MSG_USER_CONNECT_JOIN + param.getOpenId());
|
|
|
this.sendMessage(session, KfWebSocketMsgDTO.fail(param.getWebSocketMsgType(), "玩家已被其他客服接入"));
|
|
|
return;
|
|
|
}
|