Пример #1
0
        public void client_MessageReceived(string serializedMessage)
        {
            if (string.IsNullOrEmpty(serializedMessage))
            {
                return;
            }

            try
            {
                List <SocketMessage> msges = M.ModifiedDeserialize(serializedMessage);

                Type formType = ContentFrame.Content.GetType();


                if (formType == typeof(Views.Lobby))
                #region "Lobby Sockets"
                {
                    foreach (SocketMessage msg in msges)
                    {
                        MyLobby.HandleSocketMessage(msg);
                    }
                }
                #endregion
                else if (formType == typeof(Views.DuelFieldNew))
                #region "Duel Sockets"
                {
                    foreach (SocketMessage msg in msges)
                    {
                        MyDuelField.HandleSocketMessage(msg);
                    }
                }
                #endregion

                #region "Other Sockets"
                {
                    foreach (SocketMessage msg in msges)
                    {
                        switch (msg.mType)
                        {
                        case MessageType.Normal:
                            System.Windows.Browser.HtmlPage.Document.SetProperty("title", "Message received");

                            if (lstOnlineUsers.Items.Contains(msg.From))
                            {
                                lstOnlineUsers.Items.Remove(msg.From);
                                lstOnlineUsers.Items.Insert(0, msg.From);
                            }
                            chatNotification();
                            addMessage(msg.From + ": " + msg.data);
                            break;

                        case MessageType.Join:
                            if (lstOnlineUsers.Items.Contains(msg.From) == false)
                            {
                                lstOnlineUsers.Items.Add(msg.From);
                            }
                            break;

                        case MessageType.Leave:
                            lstOnlineUsers.Items.Remove(msg.data);
                            break;
                        }
                    }
                }
                #endregion
            }
            catch (Exception)
            {
            }
        }