code: def _handle_qos0_message_flow(self, app_message):
          
          assert app_message.qos == QOS_0
          if app_message.direction == OUTGOING:
              packet = app_message.build_publish_packet()
              # Send PUBLISH packet
              yield from self._send_packet(packet)
              app_message.publish_packet = packet
          elif app_message.direction == INCOMING:
              if app_message.publish_packet.dup_flag:
                  self.logger.warning("[MQTT-3.3.1-2] DUP flag must set to 0 for QOS 0 message. Message ignored: %s" %
                                      repr(app_message.publish_packet))
              else:
                  try:
                      self.session.delivered_message_queue.put_nowait(app_message)
                  except:
                      self.logger.warning("delivered messages queue full. QOS_0 message discarded")
docs: Handle QOS_0 application message acknowledgment
          For incoming messages, this method stores the message
          For outgoing messages, this methods sends PUBLISH
          :param app_message:
          :return: