public RemoteOnlineService()
        {
            _pubsub          = PubSubEvents.Singleton;
            _clientGroupList = ClientGroupCollection.Instance;
            _clientGroupList[MagicStrings.DefaultGroup].OnlineClients = DefaultClientList;
            _remoteUpdateSenderAdapterDic = new Dictionary <int, FileSendProxy>();
            _pushService = OperationContext.Current.GetCallbackChannel <IPushServiceCallback>();
            _tokenList   = new ClientTokenList();
            ServerPushList.Add(_pushService);
            var scEvent = new ServiceCreatedEvent <RemoteOnlineService>(this);

            _pubsub.Publish(scEvent);
        }
        private void RemoteServicePush_UserOnlineStateChanged(ClientToken obj)
        {
            Console.WriteLine($"RemotePush {obj.NickName} {obj.OnlineState}");
            var client = ClientTokenList.Find(OnlineClients.ToList(), obj);

            if (client == null)
            {
                OnlineClients.Add(obj);
            }
            else
            {
                ClientToken.PropertyCopy(obj, client);
            }
        }