Beispiel #1
0
        private void SendMultiplicativeMessages(Dictionary <string, InviteResponse> inviteResponses)
        {
            int clientsCount = loggedClients.Count;

            for (int i = 0; i < clientsCount; ++i)
            {
                var          client = loggedClients[i];
                LoggedClient nextClient;
                if (i < clientsCount - 1)
                {
                    nextClient = loggedClients[i + 1];
                }
                else
                {
                    nextClient = loggedClients.First();
                }
                var clientMultiplicativeGroup = inviteResponses[client.Username].UsersMultiplicativeGroup;
                clientMultiplicativeGroup.Username = client.Username;
                var serizlizedClientMultiplicativeGroup = MessagesSerializer.Serialize(clientMultiplicativeGroup);
                var baseMessage        = new BaseMessage(MessageType.MultiplicativeGroupNotifier, serizlizedClientMultiplicativeGroup);
                var serizedBaseMessage = MessagesSerializer.Serialize(baseMessage);
                try
                {
                    nextClient.SendMessage(serizedBaseMessage);
                }
                catch (Exception ex)
                {
                    System.Diagnostics.Debug.WriteLine(ex.Message);
                }
            }
        }
Beispiel #2
0
 public void HandleRBigIntRequest(LoggedClient loggedClient, RBigInt rBigInt)
 {
     try
     {
         rBigInt.Username = loggedClient.Username;
         var serizlizedRBigInt  = MessagesSerializer.Serialize(rBigInt);
         var baseMessage        = new BaseMessage(MessageType.RBigInt, serizlizedRBigInt);
         var serizedBaseMessage = MessagesSerializer.Serialize(baseMessage);
         int clientsCount       = loggedClients.Count;
         for (int i = 0; i < clientsCount; ++i)
         {
             var client = loggedClients[i];
             try
             {
                 client.SendMessage(serizedBaseMessage);
             }
             catch (Exception ex)
             {
                 Console.WriteLine("Wrong R");
                 System.Diagnostics.Debug.WriteLine(ex.Message);
             }
         }
         Console.WriteLine("R sended");
     }
     catch { }
 }
Beispiel #3
0
        private void NotifyNewClientHasConnected(string newClientUsername)
        {
            var allLoggedClients = loggedClients;

            if (allLoggedClients != null)
            {
                for (int i = 0; i < allLoggedClients.Count; ++i)
                {
                    var me         = allLoggedClients[i];
                    var myUsername = me.Username;
                    if (myUsername != newClientUsername)
                    {
                        var myFriends                = allLoggedClients.Where(x => x.Username != myUsername).Select(u => u.Username).ToList();
                        var statusNotifier           = new StatusNotifier(false, myFriends);
                        var serializedStatusNotifier = MessagesSerializer.Serialize(statusNotifier);
                        var baseMessage              = new BaseMessage(MessageType.StatusNotifier, serializedStatusNotifier);
                        var serializedBaseMessage    = MessagesSerializer.Serialize(baseMessage);
                        try
                        {
                            me.SendMessage(serializedBaseMessage);
                        }
                        catch { }
                    }
                }
            }
        }
Beispiel #4
0
 // Use this for initialization
 void Start()
 {
     globalVars       = GlobalVars.Instance;
     dgSerializer     = DelayGramSerializer.Instance;
     thumbnailsList   = GetComponent <ThumbnailsList>();
     oldFollowerCount = dgSerializer.Followers;
     dgSerializer.RegisterFollowersListener(this);
     messagesSerializer = MessagesSerializer.Instance;
     // oldFollowerCount = globalVars.
 }
    void LoadState()
    {
        if (!gameLoaded)
        {
            globalVars         = GlobalVars.Instance;
            dgSerializer       = DelayGramSerializer.Instance;
            messagesSerializer = MessagesSerializer.Instance;
            var globalSaveFound   = globalVars.LoadGame();
            var dgsSaveFound      = dgSerializer.LoadGame();
            var messagesSaveFound = messagesSerializer.LoadGame();
            if (!globalSaveFound || !dgsSaveFound || !messagesSaveFound)
            {
                loadMarketingGuy = true;
            }

            gameLoaded = true;
        }
    }
Beispiel #6
0
        private string GetLoginResponse(bool isAuthorized, string username, byte[] AESKey)
        {
            LoginResponse loginResponse = null;

            if (isAuthorized)
            {
                var users = loggedClients;
                loginResponse = new LoginResponse(true, users.Where(x => x.Username != username).Select(u => u.Username).ToList());
            }
            else
            {
                loginResponse = new LoginResponse(false, new List <string>());
            }
            var serializedLoginResponse = MessagesSerializer.Serialize(loginResponse);
            var baseMessage             = new BaseMessage(MessageType.LoginResponse, serializedLoginResponse);
            var serializedResponse      = MessagesSerializer.Serialize(baseMessage);

            return(GetReadyToSendMessage(serializedResponse, AESKey));
        }
Beispiel #7
0
 public void HandleDHBigIntRequest(LoggedClient loggedClient, DHBigInt dhBigInt)
 {
     try
     {
         int clientIndex = loggedClients.IndexOf(loggedClient);
         dhBigInt.Username = loggedClient.Username;
         var serializedDHBigInt     = MessagesSerializer.Serialize(dhBigInt);
         var baseMessage            = new BaseMessage(MessageType.DHBigInt, serializedDHBigInt);
         var seriazlizedBaseMessage = MessagesSerializer.Serialize(baseMessage);
         if (clientIndex == 0)
         {
             loggedClients[loggedClients.Count - 1].SendMessage(seriazlizedBaseMessage);
         }
         else
         {
             loggedClients[clientIndex - 1].SendMessage(seriazlizedBaseMessage);
         }
     }
     catch { }
 }
Beispiel #8
0
 public void HandleMessage(LoggedClient loggedClient, BaseMessage message)
 {
     try
     {
         var serizedBaseMessage = MessagesSerializer.Serialize(message);
         int clientsCount       = loggedClients.Count;
         for (int i = 0; i < clientsCount; ++i)
         {
             var client = loggedClients[i];
             try
             {
                 client.SendMessage(serizedBaseMessage);
             }
             catch (Exception ex)
             {
                 Console.WriteLine("Couldn't send to client");
                 System.Diagnostics.Debug.WriteLine(ex.Message);
             }
         }
         Console.WriteLine("R sended");
     }
     catch { }
 }
Beispiel #9
0
 private void InviteUsers()
 {
     if (LoggedClients != null)
     {
         var usernames     = LoggedClients.Select(x => x.Username).ToList();
         var inviteMessage = new StatusNotifier(true, usernames);
         inviteMessage.GroupSize = usernames.Count;
         var serializedInviteMessage = MessagesSerializer.Serialize(inviteMessage);
         var baseMessage             = new BaseMessage(MessageType.StatusNotifier, serializedInviteMessage);
         var seriazlizedBaseMessage  = MessagesSerializer.Serialize(baseMessage);
         for (int i = 0; i < LoggedClients.Count; ++i)
         {
             var loggedClient = LoggedClients[i];
             try
             {
                 loggedClient.SendMessage(seriazlizedBaseMessage);
             }
             catch (Exception ex)
             {
                 System.Diagnostics.Debug.WriteLine(ex.Message);
             }
         }
     }
 }