using NetFrame; using NetFrame.auto; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace LOLServer.logic { public class AbsMulitHandler:AbsOnceHandler { public List<UserToken> list = new List<UserToken>(); 用户进入当前子模块 enter(UserToken token) { if (list.Contains(token)) { return false; } list.Add(token); return true; } 用户是否在此子模块 isEntered(UserToken token) { return list.Contains(token); } 用户离开当前子模块 leave(UserToken token) { if (list.Contains(token)) { list.Remove(token); return true; } return false; } #region 消息群发API public void brocast(int command, object message,UserToken exToken=null) { brocast(GetArea(), command, message, exToken); } public void brocast(int area, int command, object message, UserToken exToken = null) { brocast(GetType(), area, command, message, exToken); } public void brocast(byte type, int area, int command, object message, UserToken exToken = null) { byte[] value = MessageEncoding.encode(CreateSocketModel(type, area, command, message)); value = LengthEncoding.encode(value); foreach (UserToken item in list) { if (item != exToken) { byte[] bs = new byte[value.Length]; Array.Copy(value, 0, bs, 0, value.Length); item.write(bs); } } } #endregion } }
(2)biz事务层:事务处理,保证数据安全的逻辑处理,如账号、用户信息相关的处理,impl是相关的实现类;
(3)cache缓存层:读取数据库中的内容放在内存中,加快访问速度;
(4)dao数据层:服务器和数据库之间的中间件;
(5)工具类:一些实用的工具类放在这里,如定时任务列表,用来实现游戏中的刷怪,buff等;
逻辑处理流程如下: