public override async Task OnConnectedAsync() { if (!(Context.User.Identity is ClaimsIdentity identity)) { return; } var playerId = identity.FindFirst(JwtService.PlayerIdClaim).Value; var lobbyCode = identity.FindFirst(JwtService.LobbyCodeClaim).Value; if (string.IsNullOrWhiteSpace(playerId) || !Guid.TryParse(playerId, out var playerGuid) || string.IsNullOrWhiteSpace(lobbyCode)) { return; } var player = _lobbyHandler.GetPlayerDto(playerGuid, lobbyCode); if (player == null) { return; } _lobbyHandler.SetPlayerIsConnected(playerGuid, true, lobbyCode); await Groups.AddToGroupAsync(Context.ConnectionId, lobbyCode); await Clients.Groups(lobbyCode).SendAsync("Connect", player.Username); }