/** 执行写入流(主线程) */ private void doWriteRequestToStream(BaseRequest request, int index) { request.sendTime = Ctrl.getFixedTimer(); request.sended = false; if (!ShineSetting.useKCP && ShineSetting.socketUseAsync) { toWriteRequestToStream(_writeStream, request, index); } else { request.sendMsgIndex = index; _sendQueue.add(request); if (ShineSetting.needThreadNotify) { if (ShineSetting.useKCP) { _kcpThread.notifyFunc(); } else { _sendThread.notifyFunc(); } } } }
public void onSecond() { long now = Ctrl.getFixedTimer(); while (_headID != -1) { //超时 if ((now - _headTime) > keepTime) { releaseOne(); } else { break; } } }
public void unloadOne(GameObject obj) { --_refCount; if (obj != null) { obj.transform.SetParent(_poolRootTrans); ResourceNode node = new ResourceNode(); node.obj = obj; node.inTime = Ctrl.getFixedTimer(); _queue.add(node); ++_parent.num; } //直接-1 if (_refCount == 0 && _queue.isEmpty()) { LoadControl.unloadOne(id); } }
private void onSecond() { if (_reconnecting) { if (--_reconnectLastTime <= 0) { _reconnectLastTime = 0; Ctrl.log("重连超时,连接关闭"); reconnectFailed(); } } // Ctrl.print("newResponseNum",_newResponseNum); _newResponseNum = 0; if (ShineSetting.messageUsePool) { long nowTime = Ctrl.getFixedTimer(); int key; for (short i = _sendCheckIndex; i != _sendMsgIndex; i++) { BaseRequest request = _sendCacheRequestQueue[key = (i & ShineSetting.requestCacheMark)]; if (request == null) { Ctrl.errorLog("不该找不到消息", i); break; } else { if ((nowTime - request.sendTime) > ShineSetting.requestCacheTime) { if (!request.sended) { Ctrl.warnLog("消息还未发送", request.getDataID()); break; } request.doRelease(); _sendCacheRequestQueue[key] = null; _sendCheckIndex++; } else { break; } } } } switch (_state) { case Connected: { // if(!_socket.Connected) // { // //连接被关闭 // beClose(); // } ++_pingIndex; if (_pingIndex >= ShineSetting.pingTime) { _pingIndex = 0; sendPingRequest(); } if (ShineSetting.needPingCut) { ++_pingTimePass; if (_pingTimePass > ShineSetting.pingKeepTime) { Ctrl.warnLog("连接超时,强制关闭"); _pingTimePass = 0; closeForIO(Close_TimeOut); } } } break; case Connecting: { //连接超时 if ((++_connectTime) >= _connectTimeMax) { Ctrl.log("连接中超时"); _connectTime = 0; preConnectFailedForIO(); } } break; case Closed: { _tryConnectTime.onSecond(); } break; } }