def read_message(self): buffer = bytearray() chunk = yield self.read_bytes_async(MQTTConstants.MESSAGE_FIXED_HEADER_MINIMUM_SIZE) buffer.extend(chunk) while not MQTTUtils.is_length_field_complete(buffer[MQTTConstants.MESSAGE_TYPE_LENGTH:]): chunk = yield self.read_bytes_async(1) buffer.extend(chunk) msg_length, field_size = MQTTUtils.decode_length(buffer[MQTTConstants.MESSAGE_TYPE_LENGTH:]) if msg_length > 0: chunk = yield self.read_bytes_async(msg_length) buffer.extend(chunk) self._update_timeout() return bytes(buffer)
def read_message(self): buffer = bytearray() chunk = yield self.read_bytes_async( MQTTConstants.MESSAGE_FIXED_HEADER_MINIMUM_SIZE) buffer.extend(chunk) while not MQTTUtils.is_length_field_complete( buffer[MQTTConstants.MESSAGE_TYPE_LENGTH:]): chunk = yield self.read_bytes_async(1) buffer.extend(chunk) msg_length, field_size = MQTTUtils.decode_length( buffer[MQTTConstants.MESSAGE_TYPE_LENGTH:]) if msg_length > 0: chunk = yield self.read_bytes_async(msg_length) buffer.extend(chunk) self._update_timeout() return bytes(buffer)