示例#1
0
        private void StartGlobalChat()
        {
            bool end        = false;
            var  clientGuid = _data.ClientsInGlobalChat.GetClient(_client);

            SendMessagesHistory();
            SendAllAboutEnter(clientGuid);

            while (!end)
            {
                try
                {
                    string dataReceivedType = _requests.GetStringMessage(_client);

                    if (dataReceivedType == "0")
                    {
                        _data.ClientsInGlobalChat.Remove(clientGuid);
                        SendAllAboutExist(clientGuid);
                        end = true;
                    }
                    else
                    {
                        if (dataReceivedType == MessageType.STRING.ToString())
                        {
                            string dataReceived = _requests.GetStringMessage(_client);
                            SendAllStringMessage(clientGuid, dataReceived);
                        }
                        else if (dataReceivedType == MessageType.PIC.ToString())
                        {
                            _requests.GetPictureMessage(_client);
                            SendAllPicMessage(clientGuid);
                        }
                        else
                        {
                            _data.ClientsInGlobalChat.Remove(clientGuid);
                            SendAllAboutExist(clientGuid);
                            end = true;
                        }
                    }
                }
                catch (Exception)
                {
                    end = true;
                    ChatUtils.RemoveClientWhenOut(_client, clientGuid, _data);
                    _data.ClientsInGlobalChat.Remove(clientGuid);
                }
            }
        }