//收到命名请求之后: public void ReqRename(MsgPack netMsgPack) { ReqRename data = netMsgPack.netMsg.reqRename; NetMsg msg = new NetMsg { cmd = (int)CMD.RspRename }; if (CacheSvc.Instance.IsNameExist(data.name)) { //名字是否已经存在 //存在:返回错误码 msg.err = (int)ErrCode.NameIsExist; } else { //不存在:更新缓存,以及数据库,再返回给客户端 //还有一种做法是更新缓存之后,马上返回客户端,但是没办法知道数据库是否更新成功 //如果提前返回客户端,必须要设定机制数据库更新是成功的 PlayerData playerData = CacheSvc.Instance.GetPlayerDataBySession(netMsgPack.serverSession); playerData.name = data.name; //将缓存的数据更新了 if (!CacheSvc.Instance.UpdatePlayerData(playerData.id, playerData)) { msg.err = (int)ErrCode.UpdateDBError; } else { msg.rspRename = new RspRename { name = data.name }; } } netMsgPack.serverSession.SendMsg(msg); }
public void ReqRename(MsgPack pack) { ReqRename rename = pack.msg.reqRename; GameMsg msg = new GameMsg() { cmd = (int)CMD.RspRename, }; if (cacheSvc.IsNameExist(rename.name)) { msg.err = (int)ErrorCode.NameIsExist; } else { PlayerData playerData = cacheSvc.GetPlayerDataBySession(pack.session); playerData.name = rename.name; if (!cacheSvc.UpdataPlayerData(playerData.id, playerData)) { msg.err = (int)ErrorCode.UpdateDBError; } else { msg.rspRename = new RspRename() { name = rename.name }; } } pack.session.SendMsg(msg); }
public void ReqRename(MsgPack pack) { ReqRename data = (ReqRename)pack.msg; SCPacketBase msg = new RspRename(); if (cacheSvc.IsNameExist(data.Name)) { //名字是否已经存在 //存在:返回错误码 msg.error = (int)ErrorCode.NameIsExist; } else { //不存在:更新缓存,以及数据库,再返回给客户端 PlayerData playerData = cacheSvc.GetPlayerDataBySession(pack.session); playerData.Name = data.Name; if (!cacheSvc.UpdatePlayerData(playerData.Id, playerData)) { msg.error = (int)ErrorCode.UpdateDBError; } else { msg = new RspRename { Name = data.Name }; } } pack.session.SendMsg(msg); }
/// <summary> /// 创建角色,重命名 /// </summary> /// <param name="pack"></param> public void ReqRename(MsgPack pack) { ReqRename data = pack.msg.reqRename; GameMsg msg = new GameMsg { cmd = (int)CMD.RspRename }; if (cacheSvc.IsNameExit(data.name) == true) { // 名字已存在,返回错误码 msg.err = (int)ErrorCode.NameIsExist; } else { // 名字未使用,更新缓存,数据库,返回给客户端 PlayerData playerData = cacheSvc.GetPlayerDataBySession(pack.session); playerData.name = data.name; if (cacheSvc.UpdatePlayerData(playerData.id, playerData) == false) { msg.err = (int)ErrorCode.UpdateDBError; } else { msg.rspRename = new RspRename { name = data.name }; } } pack.session.SendMsg(msg); }
/// <summary> /// 处理修改名字请求 /// </summary> public void HandleReqRename(MsgPack pack) { ReqRename reqData = pack.msg.ReqRename; NetMsg newMsg = new NetMsg { cmd = (int)MsgType.RspRename, }; //检查名字是否已经存在 bool check = CacheSvc.Instance.CheckName(reqData.name); if (check) { newMsg.err = (int)ErrorCode.NameExisted; } else { PlayerData data = CacheSvc.Instance.GetPlayerDataBySession(pack.session); data.Name = reqData.name; if (CacheSvc.Instance.UpdatePlayerDataToDB(data.ID, data)) { newMsg.RspRename = new RspRename { name = reqData.name, }; } else { newMsg.err = (int)ErrorCode.UpdateDBFailed; } } pack.session.SendMsg(newMsg); }
public void ReqRename(MsgPack pack) { ReqRename data = pack.msg.reqRename; GameMsg msg = new GameMsg { cmd = (int)CMD.RspRename }; if (cacheSvc.IsNameExist(data.name)) { //名字是否已经存在 //存在:返回错误码 msg.err = (int)ErrorCode.NameIsExist; } else { //不存在:更新缓存,以及数据库,再返回给客户端 PlayerData playerData = cacheSvc.GetPlayerDataBySession(pack.session); playerData.name = data.name; if (!cacheSvc.UpdatePlayerData(playerData.id, playerData)) { msg.err = (int)ErrorCode.UpdateDBError; } else { msg.rspRename = new RspRename { name = data.name }; } } pack.session.SendMsg(msg); }
/// <summary> /// 响应改名请求 /// </summary> /// <param name="pack"></param> public void ReqRename(MsgPack pack) { ReqRename data = pack.msg.reqRename; GameMsg msg = new GameMsg { cmd = (int)CMD.RspRename }; // 名字是否存在 if (cacheSvc.IsNameExist(data.name)) // 存在,返回错误码 { msg.err = (int)ErrorCode.NameIsExist; } else // 不存在,更新缓存和数据库,再返回给客户端 { PlayerData playerData = cacheSvc.GetPlayerDataBySession(pack.session); playerData.name = data.name; // 更新失败 if (!cacheSvc.UpdatePlayerData(playerData.id, playerData)) { msg.err = (int)ErrorCode.UpdateDBError; } // 更新成功 else { // 直接把更新后的名字返回给客户端 msg.rspRename = new RspRename { name = data.name }; } } // 发送回应给客户端 pack.session.SendMsg(msg); }
public void ClickEnterBtn() { GameEntry.Sound.PlayUISound(Constants.UIClickBtn); if (iptName.text != "") { //发送名字数据到服务器,登录主城 CSPacketBase msg = new ReqRename { Name = iptName.text }; GameEntry.Net.SendMsg(msg); } else { GameEntry.UI.AddTips("当前名字不符合规范"); } }
//处理重命名请求 public void ReqRename(MsgPack pack) { ReqRename data = pack.msg.reqRename; GameMsg msg = new GameMsg { cmd = (int)CMD.RespondRename, //下面的代码太早了,这个名字也许存在 //respondRename = new RespondRename //{ // name = data.name //} }; //名字存在,返回错误码 if (cacheSrv.IsNameExist(data.name)) { msg.err = (int)ErroroCode.NameIsExist; } //不存在,更新缓存和数据库数据 else { PlayerData playerData = cacheSrv.GetPlayerDataBySession(pack.serverSession); playerData.name = data.name; //数据库更新出错 if (!cacheSrv.UpdatePlayerData(playerData.id, playerData)) { msg.err = (int)ErroroCode.UpdateDBError; } else { msg.respondRename = new RespondRename { name = data.name }; } } //发送回去 pack.serverSession.SendMsg(msg); }
/// <summary> /// 处理重命名请求 /// </summary> /// <param name="pack"></param> public void ReqRename(MsgPack pack) { ReqRename data = pack.msg.reqRename; //给客户端的回应消息 GameMsg rspMsg = new GameMsg() { cmd = (int)CMD.RsqRename, }; //名字已经存在 返回错误码 if (cacheSvc.IsNameExit(data.name)) { rspMsg.err = (int)ErrorCode.NameIsExit; } //名字不存在 更新缓存与数据库 再返回给客户端 else { //更新缓冲区数据(代替更新数据库) PlayerData cachePlayerData = cacheSvc.GetPlayerDataBySettion(pack.session); if (cachePlayerData != null) { cachePlayerData.name = data.name; } //更新数据库失败,返回错误码(这里是简化处理了,仍然同步写入数据库;对于高并发操作,应该由驱动负责将数据更新入数据库中,但是会分离逻辑,更为复杂) if (!cacheSvc.UpdatePlayerData(cachePlayerData.id, cachePlayerData)) { rspMsg.err = (int)ErrorCode.UpdateDbError; } //更新数据库成功 返回数据 else { rspMsg.rspRename = new RspRename { name = data.name }; } } pack.session.SendMsg(rspMsg); }
//回应重命名请求 public void ReqRename(PackMsg pack) { ReqRename data = pack.msg.reqRename; ServerSession session = pack.session; GameMsg msg = new GameMsg { cmd = (int)CMD.RspRename, }; //判断当前名字是否存在 //若存在,返回错误码 if (cacheSvc.IsNameExist(data.name)) { msg.err = (int)ErrorCode.NameIsExist; } //若不存在,更新缓存以及数据库,返回客户端 else { PlayerData playerData = cacheSvc.GetPlayerDataCache(session); playerData.name = data.name; //数据库更新失败 if (!cacheSvc.UpdatePlayerData(playerData.id, playerData)) { msg.err = (int)ErrorCode.UpdateDBError; } else { msg.rspRename = new RspRename { name = data.name, }; } } pack.session.SendMsg(msg); }
public void ReqRename(MsgPack pack) { ReqRename data = pack.msg.reqRename; GameMsg msg = new GameMsg { cmd = (int)CMD.RspRename }; // 名字是否存在 if (cacheSev.IsNameExist(data.name)) { // 存在:返回错误码 msg.err = (int)ErrorCode.NameIsExit; } else { // 不存在:更新缓存和数据库,再返回给客户端 PlayerData playerData = cacheSev.GetPlayerDataBySession(pack.session); playerData.name = data.name; if (playerData == null) { msg.err = (int)ErrorCode.GetCacheError; pack.session.SendMsg(msg); return; } if (!cacheSev.UpdatePlayerData(playerData)) { msg.err = (int)ErrorCode.UpdateDBError; } else { msg.rspRename = new RspRename(data.name); } } pack.session.SendMsg(msg); }