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; } } }
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); }