Exemplo n.º 1
0
        public void ExecuteCommand(GameSession session, ProtobufRequestInfo requestInfo)
        {
            var             gameOperation = SendGetRoomCard.ParseFrom(requestInfo.Body);
            RedisLoginModel olduser       = RedisUtility.Get <RedisLoginModel>(RedisUtility.GetKey(GameInformationBase.COMMUNITYUSERLIST, gameOperation.Openid, gameOperation.Unionid));

            if (olduser == null)
            {
                return;
            }
            var info = Gongyong.userlist.First(w => w.openid.Equals(olduser.Openid));

            if (info == null)
            {
                return;
            }
            if (info.Type == 0)
            {
                var msg = ReturnGetRoomCard.CreateBuilder().SetUserRoomCard(RoomCardUtility.GetRoomCard(gameOperation.UserID)).Build().ToByteArray();
                session.TrySend(new ArraySegment <byte>(CreateHead.CreateMessage(GameInformationBase.BASEAGREEMENTNUMBER + 1023, msg.Length, requestInfo.MessageNum, msg)));
            }
            else
            {
                var msg = ReturnGetRoomCard.CreateBuilder().SetUserRoomCard(RoomCardUtility.GetLongBaoNumber(info.unionid)).Build().ToByteArray();
                session.TrySend(new ArraySegment <byte>(CreateHead.CreateMessage(GameInformationBase.BASEAGREEMENTNUMBER + 1023, msg.Length, requestInfo.MessageNum, msg)));
            }
        }
Exemplo n.º 2
0
        public void ExecuteCommand(GameSession session, ProtobufRequestInfo requestInfo)
        {
            var sendAgentGetGroupInfo = SendAgentGetGroupInfo.ParseFrom(requestInfo.Body);

            GroupInfoDAL groupInfoDAL = new GroupInfoDAL();


            DAL.Model.GroupInfo groupInfoModel = groupInfoDAL.GetGroupInfoByGroupID(sendAgentGetGroupInfo.GroupID, 0);

            if (groupInfoModel != null)
            {
                var returnDate = ReturnAgentGetGroupInfo.CreateBuilder().SetGroupID(sendAgentGetGroupInfo.GroupID).
                                 SetGroupName(HttpUtility.UrlDecode(HttpUtility.UrlDecode(groupInfoModel.GroupName))).SetNikeName(HttpUtility.UrlDecode(HttpUtility.UrlDecode(groupInfoModel.GroupName))).
                                 SetRoomCardCounts(RoomCardUtility.GetRoomCard(sendAgentGetGroupInfo.UserID)).
                                 SetCreateTime(TimeToLong.ConvertDateTimeInt(groupInfoModel.CreateTime)).
                                 Build().ToByteArray();
                session.Send(new ArraySegment <byte>(CreateHead.CreateMessage(GameInformationBase.BASEAGREEMENTNUMBER + 1106, returnDate.Length, requestInfo.MessageNum, returnDate)));
            }
            else
            {
                var returnMessage = ReturnMessgae.CreateBuilder().SetStatue(0).SetMessage("圈子不存在").Build().ToByteArray();
                session.Send(new ArraySegment <byte>(CreateHead.CreateMessage(GameInformationBase.BASEAGREEMENTNUMBER + 1104, returnMessage.Length, requestInfo.MessageNum, returnMessage)));
            }
        }
Exemplo n.º 3
0
        public void ExecuteCommand(GameSession session, ProtobufRequestInfo requestInfo)
        {
            var             gameOperation = SendGameOperation.ParseFrom(requestInfo.Body);
            RedisLoginModel olduser       = RedisUtility.Get <RedisLoginModel>(RedisUtility.GetKey(GameInformationBase.COMMUNITYUSERLIST, gameOperation.Openid, gameOperation.Unionid));

            if (olduser == null)
            {
                return;
            }
            int GroupID             = gameOperation.HasGroupID ? gameOperation.GroupID : 0;
            var serverGameOperation = ReturnGameOperation.CreateBuilder();

            UserInfo user = Gongyong.userlist.Find(u => u.openid == olduser.Openid);

            switch (gameOperation.Operation)
            {
            //1創建房間/2加入房間
            case 1:
                //if (ISUserInGruop(gameOperation))
                if (gameOperation.GroupID != 0)
                {
                    GroupInfoDAL groupInfoDAL      = new GroupInfoDAL();
                    var          creategroupuderid = groupInfoDAL.GetUserIDByGuoupID(GroupID);
                    var          roomcardCount     = RoomCardUtility.GetRoomCard(creategroupuderid);
                    if (roomcardCount - GameInformationBase.createRoomCard < 0)
                    {
                        var data = serverGameOperation.SetUnionid(gameOperation.Unionid).SetOpenid(gameOperation.Openid).SetStatus(-3).Build().ToByteArray();
                        session.Send(new ArraySegment <byte>(CreateHead.CreateMessage(GameInformationBase.BASEAGREEMENTNUMBER + 1021, data.Length, requestInfo.MessageNum, data)));
                        return;
                    }
                    else
                    {
                        RedisUtility.GetServerIP(GameInformationBase.DEFAULTGAMESERVERNAME, requestInfo.MessageNum, session, 1, gameOperation.Openid, gameOperation.Unionid);
                    }


                    var reslut = RedisUtility.GetServerIP(GameInformationBase.DEFAULTGAMESERVERNAME, requestInfo.MessageNum, session, 1, gameOperation.Openid, gameOperation.Unionid);
                    if (reslut == true)
                    {
                        //根据groupid来查找所有在线的圈子session
                        var groupList = Gongyong.userlist.FindAll(w => { return(w.GroupID.Contains(GroupID) && w.session != session); });
                        for (var i = 0; i < groupList.Count; i++)
                        {
                            Console.WriteLine("get : " + groupList[i].nickname + " , ", groupList[i]);
                        }
                        ////向日志里面添加朋友圈耗卡信息
                        //GroupInfoDAL groupInfoDAL = new GroupInfoDAL();
                        //var userInfo = Gongyong.userlist.Find(w => { return w.session.Equals(session); });
                        //var listRecord = groupInfoDAL.AddCreateRoomRecord(userInfo.UserID, GroupID,);
                    }
                }
                else    //不是在圈子里进行创建房间的
                {
                    //检测是否满足开房的条件
                    var roomcardCount = RoomCardUtility.GetRoomCard(user.UserID);
                    if (roomcardCount - GameInformationBase.createRoomCard < 0)
                    {
                        var data = serverGameOperation.SetUnionid(gameOperation.Unionid).SetOpenid(gameOperation.Openid).SetStatus(-1).Build().ToByteArray();
                        session.Send(new ArraySegment <byte>(CreateHead.CreateMessage(GameInformationBase.BASEAGREEMENTNUMBER + 1021, data.Length, requestInfo.MessageNum, data)));
                        return;
                    }
                    else
                    {
                        RedisUtility.GetServerIP(GameInformationBase.DEFAULTGAMESERVERNAME, requestInfo.MessageNum, session, 1, gameOperation.Openid, gameOperation.Unionid);
                    }
                }
                break;

            case 2:
                if (!gameOperation.HasRoomID)
                {
                    return;
                }
                var roomInfo    = RedisUtility.Get <RedisGameRoomInfo>(RedisUtility.GetKey(GameInformationBase.COMMUNITYROOMINFO, gameOperation.RoomID, string.Empty));
                var ddzRoomInfo = RedisUtility.Get <RedisDDZGameRoomInfo>(RedisUtility.GetKey(GameInformationBase.COMMUNITYDDZROOMINFO, gameOperation.RoomID, string.Empty));
                var status      = 0;

                if (roomInfo == null && ddzRoomInfo == null)
                {
                    status = 3;
                }
                else if ((roomInfo != null && roomInfo.room.listOpenid.Count >= roomInfo.room.room_peo) || (ddzRoomInfo != null && ddzRoomInfo.room.listOpenid.Count >= 3))
                {
                    status = 2;
                }
                else
                {
                    if (ISUserInGruop(gameOperation))
                    {
                        status = 1;    //1:加入成功
                        RedisUtility.GetServerIP(roomInfo.ServerName, requestInfo.MessageNum, session, 1, gameOperation.Openid, gameOperation.Unionid, false, 0, status, roomInfo == null ? 1 : 0);
                    }
                    else    //不是圈内成员
                    {
                        var data = serverGameOperation.SetUnionid(gameOperation.Unionid).SetOpenid(gameOperation.Openid).SetStatus(-2).Build().ToByteArray();
                        session.Send(new ArraySegment <byte>(CreateHead.CreateMessage(GameInformationBase.BASEAGREEMENTNUMBER + 1021, data.Length, requestInfo.MessageNum, data)));
                    }
                }
                if (status != 1)
                {
                    var data = ReturnRoomAdd.CreateBuilder().SetStart(status).Build().ToByteArray();
                    session.Send(new ArraySegment <byte>(CreateHead.CreateMessage(GameInformationBase.BASEAGREEMENTNUMBER + 7090, data.Length, requestInfo.MessageNum, data)));
                }
                break;
            }
        }
Exemplo n.º 4
0
        public void ExecuteCommand(GameSession session, ProtobufRequestInfo requestInfo)
        {
            List <GroupInfo> groupInfoList = new List <GroupInfo>();
            var requestGroupInfo           = SendGroupInfo.ParseFrom(requestInfo.Body);
            RedisUserInfoModel user        = RedisUtility.Get <RedisUserInfoModel>(RedisUtility.GetKey(GameInformationBase.COMMUNITYUSERINFO, requestGroupInfo.Openid, requestGroupInfo.Unionid));

            if (user == null)
            {
                session.Logger.Debug(string.Format("缓存无此用户{0}", string.IsNullOrEmpty(requestGroupInfo.Openid) ? "用户openid为空" : ""));
                return;
            }
            GroupInfoDAL groupInfoDAL    = new GroupInfoDAL();
            var          list            = groupInfoDAL.GetGroupIDListByUserID(user.UserID, user.Type);
            var          returnGroupInfo = ReturnGroupInfo.CreateBuilder();
            var          GroupInfodata   = GroupInfo.CreateBuilder();

            Byte[] returnGroupInfoData = null;
            if (list == null || list.Count == 0)
            {
                returnGroupInfoData = returnGroupInfo.Build().ToByteArray();
                session.Send(new ArraySegment <byte>(CreateHead.CreateMessage(GameInformationBase.BASEAGREEMENTNUMBER + 1031, returnGroupInfoData.Length, requestInfo.MessageNum, returnGroupInfoData)));
            }
            else
            {
                foreach (var GroupID in list.Distinct())
                {
                    DAL.Model.GroupInfo groupInfoModel = groupInfoDAL.GetGroupInfoByGroupID(GroupID, user.Type);
                    if (groupInfoModel != null)
                    {
                        if (groupInfoModel.CreateUserID == user.UserID)
                        {
                            GroupInfodata.SetGroupID(GroupID).SetGroupIntroduction(groupInfoModel.GroupIntroduction ?? "").SetGroupName(HttpUtility.UrlDecode(HttpUtility.UrlDecode(groupInfoModel.GroupName))).SetNikeName(groupInfoModel.GroupName).SetRoomCardCounts(RoomCardUtility.GetRoomCard(groupInfoModel.CreateUserID)).SetCreateTime(TimeToLong.ConvertDateTimeInt(groupInfoModel.CreateTime)).SetIsGroupLord(true);
                            returnGroupInfo.AddGroupInfo(GroupInfodata);
                            //data.SetGroupInfo(1,GroupInfo)
                        }
                        else
                        {
                            GroupInfodata.SetGroupID(GroupID).SetGroupIntroduction(groupInfoModel.GroupIntroduction ?? "").SetGroupName(HttpUtility.UrlDecode(HttpUtility.UrlDecode(groupInfoModel.GroupName))).SetNikeName(groupInfoModel.GroupName).SetRoomCardCounts(RoomCardUtility.GetRoomCard(groupInfoModel.CreateUserID)).SetCreateTime(TimeToLong.ConvertDateTimeInt(groupInfoModel.CreateTime)).SetIsGroupLord(false);
                            returnGroupInfo.AddGroupInfo(GroupInfodata);
                        }
                    }
                }
                returnGroupInfoData = returnGroupInfo.Build().ToByteArray();
                session.Send(new ArraySegment <byte>(CreateHead.CreateMessage(GameInformationBase.BASEAGREEMENTNUMBER + 1031, returnGroupInfoData.Length, requestInfo.MessageNum, returnGroupInfoData)));
            }
        }
Exemplo n.º 5
0
        public void ExecuteCommand(GameSession session, ProtobufRequestInfo requestInfo)
        {
            IPEndPoint clientipe = session.RemoteEndPoint;

            session.Logger.Debug("登陆sssionID--------" + session.SessionID);

            string fileName = string.Empty; //文件名
            string headImg  = string.Empty; //头像图片

            session.Logger.Debug("登录游戏----------" + DateTime.Now);
            var        userinfo  = SendLogin.ParseFrom(requestInfo.Body);
            mjuserinfo usermodel = new mjuserinfo();

            mjuserinfo model = new mjuserinfo()
            {
                nickname   = userinfo.Nickname,
                openid     = userinfo.Openid,
                city       = userinfo.City,
                headimg    = userinfo.Headimg,
                province   = userinfo.Province,
                unionid    = userinfo.Unionid,
                sex        = int.Parse(userinfo.Sex),
                Oldheadimg = userinfo.Headimg,
                is_band    = UserType
            };

            usermodel = AddUser(model, session);
            session.Logger.Debug("登录用户openid:" + userinfo.Openid + "|昵称:" + userinfo.Nickname + "----------" + DateTime.Now);
            // UserInfo olduser = Gongyong.userlist.Find(u => u.openid == userinfo.Openid);

            RedisLoginModel olduser = RedisUtility.Get <RedisLoginModel>(RedisUtility.GetKey(GameInformationBase.COMMUNITYUSERLIST, userinfo.Openid, userinfo.Unionid));

            if (olduser == null)
            {
                NewUserLogin(userinfo, usermodel, session, clientipe, GameInformationBase.serverName, requestInfo);
            }
            else if (olduser.ServerName.Equals(GameInformationBase.serverName))
            {
                UserInfo userInfo = Gongyong.userlist.Find(u => u.openid == userinfo.Openid);

                // 可能会存在缓存服务器有用户信息,而服务器没有的情况。因此需要再次判断
                if (userInfo == null)
                {
                    NewUserLogin(userinfo, usermodel, session, clientipe, GameInformationBase.serverName, requestInfo);
                    session.Logger.Debug("新登录用户openid:" + userinfo.Openid);
                }
                else if (userInfo.session.Connected)
                {
                    ReturnLogin log = ReturnLogin.CreateBuilder().SetLoginstat(2).SetUserID(int.Parse(usermodel.id.ToString())).SetUserRoomCard(0).Build();
                    byte[]      msg = log.ToByteArray();

                    session.TrySend(new ArraySegment <byte>(CreateHead.CreateMessage(GameInformationBase.BASEAGREEMENTNUMBER + 1002, msg.Length, requestInfo.MessageNum, msg)));

                    session.Logger.Debug("登录游戏失败,当前对象存在----------" + DateTime.Now);
                    session.Logger.Debug("sssionID--------" + session.SessionID);
                }
                else
                {
                    session.Logger.Debug("登录游戏成功,当前对象存在----------" + DateTime.Now);
                    var redisUserInfo = RedisUtility.Get <RedisGameModel>(RedisUtility.GetKey(GameInformationBase.COMMUNITYUSERGAME, userinfo.Openid, userinfo.Unionid));
                    // UserInfo user = Gongyong.userlist.Find(u => u.openid == userinfo.Openid);
                    userInfo.city = userinfo.City;

                    //判断图片是否保存至图片服务器,保存相应头像地址
                    userInfo.headimg  = usermodel.headimg;
                    userInfo.nickname = userinfo.Nickname;
                    userInfo.openid   = userinfo.Openid;
                    userInfo.province = userinfo.Province;
                    userInfo.session  = session;
                    userInfo.sex      = userinfo.Sex;
                    userInfo.unionid  = userinfo.Unionid;
                    userInfo.Lat      = userinfo.Latitude;
                    userInfo.UserID   = long.Parse(usermodel.id.ToString());
                    userInfo.UserIP   = clientipe.Address.ToString();
                    userInfo.GroupID  = groupStaffInfoDAL.GetGroupIDByUserID(usermodel.id).ToList();
                    userInfo.Type     = UserType;
                    //userInfo.GroupID.AddRange(groupInfoDAL.GetGroupIDByUserID(usermodel.id));//因为圈主 不存在圈子成员表中, 所以需要单独再添加一次
                    RedisUtility.Set(RedisUtility.GetKey(GameInformationBase.COMMUNITYUSERINFO, userinfo.Openid, userinfo.Unionid), new RedisUserInfoModel(userInfo));
                    // mjuser mju = Gongyong.mulist.Find(u => u.Openid == userinfo.Openid);
                    bool isSendCL = false;
                    if (redisUserInfo != null && redisUserInfo.RoomID != 0)
                    {
                        //SendCL(session, userinfo.Openid, requestInfo);
                        isSendCL = RedisUtility.GetServerIP(redisUserInfo.ServerName, requestInfo.MessageNum, session, 2, userinfo.Openid, userinfo.Unionid, true, redisUserInfo.RoomID);//2为有未结束的游戏
                    }
                    //UserClient userClient = new UserClient();
                    //userClient.UpdateUserInfo(new registrationactivitiesModel { GameUserID = userInfo.UserID.ToString(), HeadImgurl = userInfo.headimg, UnionID = userInfo.unionid, LastTime = DateTime.Now, NickName = userInfo.nickname });
                    //var resultData = JsonConvert.DeserializeObject<ResultData>(userClient.GetGameCurrency(userInfo.unionid)).Data;
                    long roomCard = 0;
                    roomCard = UserType == 1 ? UserLongBao : RoomCardUtility.GetRoomCard(userInfo.UserID);

                    //long.TryParse(resultData == null ? "0" : resultData.ToString(), out roomCard);
                    userInfo.session = session;
                    var log = ReturnLogin.CreateBuilder().SetLoginstat(1).SetUserID(int.Parse(usermodel.id.ToString())).SetUserRoomCard(roomCard);
                    if (!string.IsNullOrEmpty(CerStr))
                    {
                        log.SetCertificate(CerStr);//返回证书
                        log.SetUnionid(userInfo.unionid);
                        log.SetHeadimg(userInfo.headimg);
                        log.SetUserName(userInfo.nickname);
                    }
                    byte[] msg = log.Build().ToByteArray();
                    // if(!isSendCL)
                    session.TrySend(new ArraySegment <byte>(CreateHead.CreateMessage(GameInformationBase.BASEAGREEMENTNUMBER + 1002, msg.Length, requestInfo.MessageNum, msg)));

                    var list = new AnnouncementDAL().GetAnnouncement();//获取公告列表
                    var returnAnnouncement = ReturnAnnouncement.CreateBuilder();
                    foreach (var item in list)
                    {
                        returnAnnouncement.AddAnnouncement(AnnouncementInfo.CreateBuilder().SetTitle(item.Title).SetContent(item.Content).Build());
                    }
                    var dataInfo = returnAnnouncement.Build().ToByteArray();
                    session.TrySend(new ArraySegment <byte>(CreateHead.CreateMessage(GameInformationBase.BASEAGREEMENTNUMBER + 8001, dataInfo.Length, requestInfo.MessageNum, dataInfo)));
                    session.Logger.Debug("登录游戏成功,当前对象存在----------" + DateTime.Now);
                }
            }
            else//如果用户登录的服务器不是当前服务器,则返回登录的服务器IP和端口
            {
                UserInfo userInfo = Gongyong.userlist.Find(u => u.openid == userinfo.Openid);
                var      log      = ReturnLogin.CreateBuilder().SetLoginstat(1).SetUserID(int.Parse(usermodel.id.ToString())).SetUserRoomCard(0);
                if (!string.IsNullOrEmpty(CerStr))
                {
                    log.SetCertificate(CerStr);//返回证书
                    log.SetUnionid(userInfo.unionid);
                    log.SetHeadimg(userInfo.headimg);
                    log.SetUserName(userInfo.nickname);
                }
                byte[] msg = log.Build().ToByteArray();
                session.TrySend(new ArraySegment <byte>(CreateHead.CreateMessage(GameInformationBase.BASEAGREEMENTNUMBER + 1002, msg.Length, requestInfo.MessageNum, msg)));
                RedisUtility.GetServerIP(olduser.ServerName, requestInfo.MessageNum, session, 1, userinfo.Openid, userinfo.Unionid);//2为有未结束的游戏
                session.Logger.Debug("有未结束的游戏");
            }
        }
Exemplo n.º 6
0
        /// <summary>
        /// 新用户登录信息保存
        /// </summary>
        /// <param name="userinfo"></param>
        /// <param name="usermodel"></param>
        /// <param name="session"></param>
        /// <param name="clientipe"></param>
        /// <param name="serverName"></param>
        /// <param name="requestInfo"></param>
        private void NewUserLogin(SendLogin userinfo, mjuserinfo usermodel, GameSession session, IPEndPoint clientipe, string serverName, ProtobufRequestInfo requestInfo)
        {
            UserInfo user = new UserInfo()
            {
                city = userinfo.City,
                //判断图片是否保存至图片服务器,保存相应头像地址
                headimg  = usermodel.headimg,
                nickname = userinfo.Nickname,
                openid   = userinfo.Openid,
                province = userinfo.Province,
                session  = session,
                sex      = userinfo.Sex,
                unionid  = userinfo.Unionid,
                Lat      = userinfo.Latitude,
                UserID   = usermodel.id,
                UserIP   = clientipe.Address.ToString(),
                GroupID  = groupStaffInfoDAL.GetGroupIDByUserID(usermodel.id).ToList(),
                Type     = UserType,
                ConnTime = DateTime.Now
            };
            var redisUserInfo = RedisUtility.Get <RedisGameModel>(RedisUtility.GetKey(GameInformationBase.COMMUNITYUSERGAME, userinfo.Openid, userinfo.Unionid));
            //user.GroupID.AddRange(groupInfoDAL.GetGroupIDByUserID(usermodel.id));//因为圈主 不存在圈子成员表中, 所以需要单独再添加一次
            // UserClient userClient = new UserClient();
            // userClient.UpdateUserInfo(new registrationactivitiesModel { GameUserID = user.UserID.ToString(), HeadImgurl = user.headimg, UnionID = user.unionid, LastTime = DateTime.Now, NickName = user.nickname });
            //var resultData = JsonConvert.DeserializeObject <ResultData> (userClient.GetGameCurrency(user.unionid)).Data;
            long roomCard = roomCard = UserType == 1 ? UserLongBao : RoomCardUtility.GetRoomCard(user.UserID);

            // long.TryParse(resultData == null ?"0":resultData.ToString(), out roomCard); //resultData==null?"0": resultData.ToString()//userClient.GetGameCurrencyList(user.unionid)//resultData ? Convert.ToInt64(resultData.Data) : 0;

            Gongyong.userlist.Add(user);
            RedisUtility.Set(RedisUtility.GetKey(GameInformationBase.COMMUNITYUSERLIST, userinfo.Openid, userinfo.Unionid), new RedisLoginModel {
                Openid = userinfo.Openid, ServerName = serverName, Unionid = userinfo.Unionid
            });
            RedisUtility.Set(RedisUtility.GetKey(GameInformationBase.COMMUNITYUSERINFO, userinfo.Openid, userinfo.Unionid), new RedisUserInfoModel(user));

            var A = RedisUtility.Get <RedisLoginModel>(RedisUtility.GetKey(GameInformationBase.COMMUNITYUSERLIST, userinfo.Openid, userinfo.Unionid));


            var log = ReturnLogin.CreateBuilder().SetLoginstat(1).SetUserID(int.Parse(usermodel.id.ToString())).SetUserRoomCard(roomCard);

            if (!string.IsNullOrEmpty(CerStr))
            {
                log.SetCertificate(CerStr);//返回证书
                log.SetUnionid(user.unionid);
                log.SetHeadimg(user.headimg);
                log.SetUserName(user.nickname);
            }
            byte[] msg      = log.Build().ToByteArray();
            bool   isSendCL = false;

            if (redisUserInfo != null && redisUserInfo.RoomID != 0)
            {
                //SendCL(session, userinfo.Openid, requestInfo);
                isSendCL = RedisUtility.GetServerIP(redisUserInfo.ServerName, requestInfo.MessageNum, session, 2, userinfo.Openid, userinfo.Unionid, true, redisUserInfo.RoomID);//2为有未结束的游戏
            }
            // if (!isSendCL)
            session.TrySend(new ArraySegment <byte>(CreateHead.CreateMessage(GameInformationBase.BASEAGREEMENTNUMBER + 1002, msg.Length, requestInfo.MessageNum, msg)));
            var list = new AnnouncementDAL().GetAnnouncement();//获取公告列表
            var returnAnnouncement = ReturnAnnouncement.CreateBuilder();

            foreach (var item in list)
            {
                returnAnnouncement.AddAnnouncement(AnnouncementInfo.CreateBuilder().SetTitle(item.Title).SetContent(item.Content).Build());
            }
            var data = returnAnnouncement.Build().ToByteArray();

            session.TrySend(new ArraySegment <byte>(CreateHead.CreateMessage(GameInformationBase.BASEAGREEMENTNUMBER + 8001, data.Length, requestInfo.MessageNum, data)));
            session.Logger.Debug("登录游戏成功----------" + DateTime.Now);
        }