Example #1
0
 private void SendWin()
 {
     //调用底层发送
     if (sendBuf.Count > 0)
     {
         for (var it = sendBuf.First; it != null;)
         {
             var seg  = it.Value;
             var next = it.Next;
             //尚未发送
             if (seg.cmd == KCPPacketCMD.CMD_PUSH)
             {
                 seg.cmd = KCPPacketCMD.CMD_WAITACK;
                 seg.EncodeFull();
                 seg.sendTime = Util.GetTimeNow();
                 outputFunc(seg);
             }
             else if (seg.cmd == KCPPacketCMD.CMD_WAITACK)
             {
                 if (seg.ackTimeout <= 0)
                 {
                     seg.ackTimeout = 1;
                     var now = Util.GetTimeNow();
                     if (now - seg.sendTime > 1)
                     {
                         Close();
                     }
                     else
                     {
                         outputFunc(seg);
                     }
                 }
                 else
                 {
                     seg.ackTimeout--;
                 }
             }
             it = next;
         }
     }
 }
Example #2
0
        void OnSend()
        {
            var iv = input.value;

            //var now = Util.GetTimeNow();
            //if (now - lastSendTime < GameConst.Instance.SpeakWaitTime)
            if (now > 0)
            {
                Util.ShowMsg("你说话太快了");
                return;
            }

            if (iv.Length > 20)
            {
                Util.ShowMsg("聊天长度不能超过20个字符");
                return;
            }
            if (iv.Length == 0)
            {
                Util.ShowMsg("不能发送空内容哦");
                return;
            }


            lastSendTime = Util.GetTimeNow();
            var qs = new Dictionary <string, object>()
            {
                { "who", ObjectManager.objectManager.GetMyName() },
                { "content", iv },
            };
            var ret = new string[1];

            StartCoroutine(StatisticsManager.DoWebReq("Chat" + StatisticsManager.QueToStr(qs), ret));

            StartCoroutine(CountTime());
        }
 public void ReceiveData(byte[] bytes)
 {
     lastReceiveTime = Util.GetTimeNow();
     //阻塞处理 线程安全 一个一个接受
     msgReader.process(bytes, (uint)bytes.Length);
 }