/// <summary> /// 调用ClientSocketHandler.CloseSocket(...)的时候会产生此调用 /// </summary> internal void OnDisconnect() { LOGs.WriteLine(LogMessageType.MSG_HACK, "OnDisconnect...... 0"); // 默认是有效地,只检测有没有已经断开,如果已经断开,则不继续处理 if (m_Running.SetInvalid() == false) { return; } LOGs.WriteLine(LogMessageType.MSG_HACK, "OnDisconnect...... 1"); m_Socket.Free(); // 如果还存在需要发送的数据,则直接清空 if (m_SendQueue.IsEmpty == false) { m_SendQueue.Clear(); // 内部已经有锁定 } // 断开的通知事件 EventHandler <NetStateDisconnectEventArgs> tempEvent = m_EventDisconnect; if (tempEvent != null) { NetStateDisconnectEventArgs netStateDisconnectEventArgs = new NetStateDisconnectEventArgs(this); tempEvent(this, netStateDisconnectEventArgs); } // 放入无效客户端的集合内,等待处理 m_World.DisposedNetStates(this); LOGs.WriteLine(LogMessageType.MSG_INFO, LanguageString.SingletonInstance.NetStateString002, this); }
public void DisposedNetStatesTest() { BaseWorld target = new BaseWorld(); // TODO: 初始化为适当的值 NetState netSatate = null; // TODO: 初始化为适当的值 target.DisposedNetStates(netSatate); Assert.Inconclusive("无法验证不返回值的方法。"); }