关于非法人员攻击网络底层,会采用两套机制:
一、3秒内如果同一个玩家发了超过50个消息包则警告他一次并锁定3秒,为了防治网络拥堵造成的突然1秒或2秒内处理超过50个包的问题而造成误判,所以设置为3秒,警告次数超过3次则强制剔掉他,每次3秒内处理50个包相当于1000的APM,是世界人手速最快记录的2倍.LOL的右击都不会那么快,这里头的警告次数与锁定时间可以配置。
二、如果海量黑客连接我们网关一直常驻不发上线认证消息,他就是僵尸连接处理,防止这种情况占用资源影响负载会在15分钟内一直不认证的则直接踢除他。
最后,还有一种优化方案:
普通玩家一样会在15分钟内不做任何操作我们就会发送一个长时间不做操作的通知框,然后踢掉他,如果是离线战斗中,比如飞机大战类型游戏则可以每5分钟发一个空包给服务器,这与自定义ping包有点像,像photon这种网络库本身是不需要自己再定义ping包的。