public byte[] Init(Stream inputStream, string httpMethod, uint user_id) { byte[] bytes = new byte[inputStream.Length]; inputStream.Read(bytes, 0, bytes.Length); //设置当前流的位置为流的开始 inputStream.Seek(0, SeekOrigin.Begin); object obj = SerializationHelper.Deserialize(NetMessageDef.RequestCreateAccount, bytes); protos.Login.RequestCreateAccount requestCreateAccount = obj as protos.Login.RequestCreateAccount; protos.ReturnMessage.ResDefaultInfo resInfo = new protos.ReturnMessage.ResDefaultInfo(); if (string.IsNullOrEmpty(requestCreateAccount.account)) { resInfo.results = 0; resInfo.details = "账号不能为空"; } else if (string.IsNullOrEmpty(requestCreateAccount.password)) { resInfo.results = 0; resInfo.details = "密码不能为空"; } if (new BLL.Users().ExistsAcc(requestCreateAccount.account)) { resInfo.results = 0; resInfo.details = "账号已存在"; } else { Model.Users newUser = new Model.Users(); newUser.UserAccount = requestCreateAccount.account; newUser.UserPassworld = requestCreateAccount.password; newUser.RegTime = DateTime.Now; newUser.LoginTime = DateTime.Now; newUser.Endurance = 100; newUser.Exp = 0; newUser.Gold = 1000; newUser.Head = ""; newUser.Lv = 1; newUser.UserName = ""; newUser.Vip = 0; newUser.Wing = 0; if (new BLL.Users().Add(newUser) > 0) { resInfo.results = 2; resInfo.details = "注册成功"; } else { resInfo.results = 0; resInfo.details = "注册失败"; } } return(SerializationHelper.Serialize(new MuffinMsg(NetMessageDef.ResponseReturnDefaultInfo, resInfo))); }
/// <summary> /// 序列化成proto /// </summary> /// <param name="msg"></param> /// <returns></returns> public static byte[] Serialize(MuffinMsg msg) { switch (msg.cmdId) { case NetMessageDef.RequestLogin: { protos.Login.RequestLogin request = msg.pBObject as protos.Login.RequestLogin; MemoryStream memStream = new MemoryStream(); ProtoBuf.Serializer.Serialize <protos.Login.RequestLogin>(memStream, request); byte[] x = memStream.ToArray(); memStream.Close(); return(x); } case NetMessageDef.RequestCreateAccount: { protos.Login.RequestCreateAccount request = msg.pBObject as protos.Login.RequestCreateAccount; MemoryStream memStream = new MemoryStream(); ProtoBuf.Serializer.Serialize <protos.Login.RequestCreateAccount>(memStream, request); byte[] x = memStream.ToArray(); memStream.Close(); return(x); } case NetMessageDef.RequestGetRole: { protos.Login.RequestGetRole request = msg.pBObject as protos.Login.RequestGetRole; MemoryStream memStream = new MemoryStream(); ProtoBuf.Serializer.Serialize <protos.Login.RequestGetRole>(memStream, request); byte[] x = memStream.ToArray(); memStream.Close(); return(x); } case NetMessageDef.ResponseGetRole: { protos.Login.ResponseGetRole request = msg.pBObject as protos.Login.ResponseGetRole; MemoryStream memStream = new MemoryStream(); ProtoBuf.Serializer.Serialize <protos.Login.ResponseGetRole>(memStream, request); byte[] x = memStream.ToArray(); memStream.Close(); return(x); } case NetMessageDef.ResponseReturnDefaultInfo: { protos.ReturnMessage.ResDefaultInfo request = msg.pBObject as protos.ReturnMessage.ResDefaultInfo; MemoryStream memStream = new MemoryStream(); ProtoBuf.Serializer.Serialize <protos.ReturnMessage.ResDefaultInfo>(memStream, request); byte[] x = memStream.ToArray(); memStream.Close(); return(x); } case NetMessageDef.RequestGetFriendList: { protos.friend.ReqGetFriendList request = msg.pBObject as protos.friend.ReqGetFriendList; MemoryStream memStream = new MemoryStream(); ProtoBuf.Serializer.Serialize <protos.friend.ReqGetFriendList>(memStream, request); byte[] x = memStream.ToArray(); memStream.Close(); return(x); } case NetMessageDef.ResponseFriendList: { protos.friend.ResFriendList request = msg.pBObject as protos.friend.ResFriendList; MemoryStream memStream = new MemoryStream(); ProtoBuf.Serializer.Serialize <protos.friend.ResFriendList>(memStream, request); byte[] x = memStream.ToArray(); memStream.Close(); return(x); } default: { Console.WriteLine("MuffinMsg.Serialize: unhandled cmdId->" + msg.cmdId.ToString()); return(null); } } }