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); } } }