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)); }
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; }