示例#1
0
        public override Task OnDisconnectedAsync(Exception exception)
        {
            var msg = new LogoffMsg
            {
                ClientIdentifier = new ClientIdentifier
                {
                    ClientIdType  = ClientIdTypeEnum.ConnectionId,
                    ClientIdValue = Context.ConnectionId,
                }
            };

            this.Logoff(msg);

            return(base.OnDisconnectedAsync(exception));
        }
示例#2
0
        private void Logoff(LogoffMsg msg)
        {
            if (msg == null)
            {
                return; // Task.CompletedTask;
            }
            var client = msg.ClientIdentifier;

            if (client == null || client.ClientIdType == null || client.ClientIdValue == null)
            {
                return; // Task.CompletedTask;
            }
            var lom = RemoveLookup(client);

            RemoveLookup(ClientIdTypeEnum.ClientId, lom.ClientId);
            RemoveLookup(ClientIdTypeEnum.ConnectionId, lom.ConnectionId);
            RemoveLookup(ClientIdTypeEnum.UserId, lom.UserId);

            return; // Task.CompletedTask;
        }