From 91e53bdf422bdbc8b56875554f4bf45e6750373f Mon Sep 17 00:00:00 2001 From: mengchengzhen <13682025901@163.com> Date: Fri, 26 Feb 2021 14:09:29 +0800 Subject: [PATCH] =?UTF-8?q?zabbix=E7=99=BB=E9=99=86=E9=99=90=E5=88=B6?= =?UTF-8?q?=E7=9B=91=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/handler/LoginConfirmHandler.java | 27 +++++++++++++++++ .../ljsd/jieling/logic/dao/UserManager.java | 30 +++++++++++++++++++ .../network/server/SessionManager.java | 12 ++++++-- 3 files changed, 67 insertions(+), 2 deletions(-) create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/handler/LoginConfirmHandler.java diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/LoginConfirmHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/LoginConfirmHandler.java new file mode 100644 index 000000000..db31e38df --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/LoginConfirmHandler.java @@ -0,0 +1,27 @@ +package com.ljsd.jieling.handler; + +import com.ljsd.jieling.logic.dao.UserManager; +import com.ljsd.jieling.netty.cocdex.PacketNetData; +import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.util.MessageUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import rpc.protocols.MessageTypeProto; +import rpc.protocols.PlayerInfoProto; + +public class LoginConfirmHandler extends BaseHandler{ + private static final Logger LOGGER = LoggerFactory.getLogger(LoginRequestHandler.class); + + @Override + public MessageTypeProto.MessageType getMessageCode() { + return MessageTypeProto.MessageType.LOGIN_CONFIRM_REQUEST; + } + + @Override + public void process(ISession iSession, PacketNetData netData) throws Exception { + UserManager.loginConfirm(); + MessageUtil.sendMessage(iSession,1, + MessageTypeProto.MessageType.LOGIN_CONFIRM_RESPONSE.getNumber(),null,true); + } + +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java index e3ef7da2c..d5f417101 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java @@ -1,6 +1,7 @@ package com.ljsd.jieling.logic.dao; +import com.ljsd.GameApplication; import com.ljsd.jieling.config.clazzStaticCfg.CommonStaticConfig; import com.ljsd.jieling.core.GlobalsDef; import com.ljsd.jieling.db.mongo.AreaManager; @@ -21,6 +22,7 @@ import com.ljsd.jieling.logic.mission.GameEvent; import com.ljsd.jieling.logic.player.PlayerLogic; import com.ljsd.jieling.network.server.SessionManager; import com.ljsd.jieling.util.ItemUtil; +import com.ljsd.jieling.util.SysUtil; import config.SGameSetting; import config.SPlayerLevelConfig; import manager.STableManager; @@ -28,17 +30,22 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import util.TimeUtils; +import java.io.File; +import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; public class UserManager { private static final Logger LOGGER = LoggerFactory.getLogger(UserManager.class); private static Map userMap = new ConcurrentHashMap<>(); private static Map userMapPutTime = new ConcurrentHashMap<>(); //离线读入 + private static AtomicInteger login_f_num = new AtomicInteger(0);//登陆计数 + private static final int LOGIN_F_LIMIT = 100;//报警界限 public static void addUser(User user) { userMap.put(user.getId(), user); @@ -198,4 +205,27 @@ public class UserManager { return "33521"; } + + public static void loginIncrease(){ + if(login_f_num.incrementAndGet() >= LOGIN_F_LIMIT){ + String path = SysUtil.getPath("conf/loginerror/loginerror"+ GameApplication.serverId +".txt"); + File file = new File(path); + try{ + if(!file.getParentFile().exists()){ + file.getParentFile().mkdirs(); + } + if(!file.exists()){ + file.createNewFile(); + LOGGER.info("生成登陆限制文件!"+TimeUtils.getTimeStamp(System.currentTimeMillis())); + } + }catch(IOException e){ + e.printStackTrace(); + } + } + } + + public static void loginConfirm(){ + login_f_num.decrementAndGet(); + } + } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/network/server/SessionManager.java b/serverlogic/src/main/java/com/ljsd/jieling/network/server/SessionManager.java index 1361a974a..04f04c333 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/network/server/SessionManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/network/server/SessionManager.java @@ -98,8 +98,16 @@ public class SessionManager implements INetSession, INetReceived