Beispiel #1
0
        private void client_StatusChanged(ServerSocketBelongTo arg2, ServerSocketItem arg3)
        {
            lock (lock_clientList) {
                if (arg3.BelongTo == ServerSocketBelongTo.Handshake && arg2 == ServerSocketBelongTo.Normal)
                {
                    handshakeList.Remove(arg3.Guid);
                    normalList.Add(arg3.UserName, arg3);
                    arg3.BelongTo = arg2;
                    return;
                }
                if (arg3.BelongTo == ServerSocketBelongTo.Handshake && arg2 == ServerSocketBelongTo.RTR)
                {
                    handshakeList.Remove(arg3.Guid);
                    rtrList.Add(arg3);
                    arg3.BelongTo = arg2;
                    return;
                }
                if (arg3.BelongTo == ServerSocketBelongTo.Normal && arg2 == ServerSocketBelongTo.RTR)
                {
                    normalList.Remove(arg3.UserName);
                    rtrList.Add(arg3);
                    arg3.BelongTo = arg2;
                    return;
                }
                if (arg2 == ServerSocketBelongTo.Close)
                {
                    switch (arg3.BelongTo)
                    {
                    case ServerSocketBelongTo.Handshake:
                        normalList.Remove(arg3.Guid);
                        break;

                    case ServerSocketBelongTo.Normal:
                        normalList.Remove(arg3.UserName);
                        break;

                    case ServerSocketBelongTo.RTR:
                        rtrList.Remove(arg3);
                        break;

                    case ServerSocketBelongTo.Close:
                        break;

                    default:
                        throw new ArgumentException();
                    }
                    arg3.BelongTo = arg2;
                    OnUserCountChanged();
                    return;
                }

                //give up
                return;
            }
        }
Beispiel #2
0
 void OnChangeStatus(ServerSocketBelongTo to)
 {
     StatusChanged?.Invoke(to, this);
 }