Example #1
0
        /// <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);
        }
Example #2
0
        public void DisposedNetStatesTest()
        {
            BaseWorld target    = new BaseWorld(); // TODO: 初始化为适当的值
            NetState  netSatate = null;            // TODO: 初始化为适当的值

            target.DisposedNetStates(netSatate);
            Assert.Inconclusive("无法验证不返回值的方法。");
        }