def METHOD_NAME(self, queue):
    '''
    updated receive all
    '''
    try:
        keys = copy.deepcopy(list(self.clientInformationArray.keys()))  # this prevents changes to the clientInformationArray from having any severe effects on this method
        for user_id in keys:
            sock = self.clientInformationArray[user_id][0]
            client = user_id
            #client = self.clientInformationArray[user_id][1]
            try:
                sock.settimeout(0.001)
                try:
                    xmlstring = self.recv_until(sock).decode()
                    if xmlstring == b'' or xmlstring == '' or xmlstring is None: 
                        self.returnReceivedData(client, b'', queue)
                        logger.debug("empty string sent, standard disconnect")
                        continue
                    xmlstring = "<multiEvent>" + xmlstring + "</multiEvent>"  # convert to xmlstring wrapped by multiEvent tags
                    xmlstring = re.sub(r'(?s)\<\?xml(.*)\?\>', '', xmlstring)  # replace xml definition tag with empty string as it breaks serilization
                    events = etree.fromstring(xmlstring)  # serialize to object
                    for event in events.findall('event'):
                        self.returnReceivedData(client, etree.tostring(event), queue)  # send each instance of event to the core
                except socket.timeout as e:
                    continue
                except BrokenPipeError as e:
                    self.returnReceivedData(client, b'', queue)
                    continue
                except Exception as e:
                    import traceback
                    if hasattr(e, "errno") and e.errno == errno.EWOULDBLOCK:  # this prevents errno 11 from spontanieously disconnecting clients due to the socket blocking set to 0
                        logger.debug("EWOULDBLOCK error passed " + str(e))
                        continue
                    logger.error(
                        "Exception other than broken pipe in monitor for data function " + str(e) + ''.join(traceback.format_exception(None, e, e.__traceback__)))
                    self.returnReceivedData(client, b'', queue)
                    continue
            except Exception as e:
                logger.error(loggingConstants.CLIENTRECEPTIONHANDLERMONITORFORDATAERRORD + str(e))
                self.returnReceivedData(client, b'', queue)
                # return -1 commented out so entire run isn't stopped because of one disconnect
        return 1
    except Exception as e:
        logger.error('exception in monitor for data ' + str(e))
        return -1