Example #1
0
 public void RemoveMsg(ICmdNum.CmdNum msgID)
 {
     for (int i = msgList.Count - 1; i >= 0; i--)
     {
         if (msgList[i].msgID == msgID)
         {
             msgList.RemoveAt(i);
             return;
         }
     }
 }
Example #2
0
    public void AddMsg(uint gameVer, ulong userID, ICmdNum.CmdNum msgID, System.Object data, float interval, int count, bool addNum, ulong msgNum)
    {
        TimeControl tc = new TimeControl();
        tc.userID = userID;
        tc.msgID = msgID;
        tc.gameVer = gameVer;

        tc.interval = interval;
        tc.count = count;
        tc.data = data;
        tc.addNum = addNum;
        tc.msgNum = msgNum;
        tc.time = Time.time;
        msgList.Add(tc);
    }
Example #3
0
        //心跳包不需要消息计数增加.addNum消息计数增加,noNum只发一次(心跳包使用)
        public void SendMessage(UInt64 userID, ICmdNum.CmdNum msgID, System.Object data, float interval = 0.0f, int count = 0, bool addNum = true, bool fistAddNum = true)
        {
            UInt64 msgNum = 0;
            if (fistAddNum && ActorManager.Instance.controlActor != null)
            {
                ActorManager.Instance.controlActor.info.msgSendNum++;
                msgNum = ActorManager.Instance.controlActor.info.msgSendNum; 
            }
                
            //包头
            MemoryStream mshead = new MemoryStream();
            BinaryWriter writer = new BinaryWriter(mshead);
            writer.Write((UInt32)gameVersion);
            writer.Write((UInt64)userID);
            writer.Write((UInt64)msgNum);
            writer.Write((UInt32)msgID);

            ProtoBuf.Meta.RuntimeTypeModel.Default.Serialize(mshead, data);

            if (mshead.Length > 1024)
            {
                Debug.Log("Send Message Length > 1024");
                return;
            }
            
            socket.SendTo(mshead.GetBuffer(), (int)mshead.Length, System.Net.Sockets.SocketFlags.None, senderRemote);
            //Debug.Log("send msg: " + Enum.GetName(typeof(ICmdNum.CmdNum), msgID));

            if (count > 0)
                msgResend.AddMsg(gameVersion, userID, msgID, data, interval, count, addNum, msgNum);            
        }