public async Task ConnectToGame(string gameId, string jsPlayer) { var settings = new JsonSerializerSettings() { TypeNameHandling = TypeNameHandling.All }; var player = JsonConvert.DeserializeObject <HumanPlayer>(jsPlayer, settings); var response = GameHandler.AddPlayerToGame(gameId, player); if (response.Item2) { var jsGame = JsonConvert.SerializeObject(response.Item1, Formatting.Indented, settings); await Groups.AddToGroupAsync(Context.ConnectionId, gameId); await Groups.AddToGroupAsync(Context.ConnectionId, Game.UniquePlayerGroup(new Base64(gameId), Server.Instance.ClientGames[gameId].players.FindIndex(p => p.InGameName == player?.InGameName))); //await Clients.Group(gameId).SendAsync("ReceiveGameInformation", jsGame); await Clients.Caller.SendAsync("ReceiveGameInformation", jsGame, (byte)response.Item3); } else { await Clients.Caller.SendAsync("ConnectToGameFailed", "game_has_started"); } }