Example #1
0
        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);
            }
        }
Example #2
0
 public void JoinRoom(string versionLobbyString)
 {
     Clients.Caller.SendAsync("UpdateState", CommonUnityViews.GenerateInvalidVersionLegacyView());
 }