public void ConnectToLobby(string lobbyFriendlyName, string clientVersion) { double truncatedServerVersion = 0; double truncatedClientVersion = 0; if (!TryTruncateVersionString(ServerVersion, out truncatedServerVersion) || !TryTruncateVersionString(clientVersion, out truncatedClientVersion) || truncatedClientVersion < truncatedServerVersion) { Clients.Caller.SendAsync("UpdateState", JsonConvert.SerializeObject(CommonUnityViews.GenerateInvalidVersionView())); return; } try { Lobby lobby = GameManager.GetLobby(lobbyFriendlyName); if (lobby != null) { LeaveAllGroups(); Groups.AddToGroupAsync(Context.ConnectionId, lobby.LobbyId); UnityView view = lobby.GetActiveUnityView(returnNullIfNoChange: false); // SignalR's serialization is abysmal and client has no insight into the issue. pull serialization out. Clients.Caller.SendAsync("UpdateState", JsonConvert.SerializeObject(view)); Clients.Caller.SendAsync("ConfigureMetadata", JsonConvert.SerializeObject(lobby.ConfigMetaData)); } } catch (Exception e) { Console.Error.WriteLine(e); } }
public void JoinRoom(string versionLobbyString) { Clients.Caller.SendAsync("UpdateState", CommonUnityViews.GenerateInvalidVersionLegacyView()); }