code: def decode_string(reader) -> bytes:
      
      length_bytes = yield from read_or_raise(reader, 2)
      str_length = unpack("!H", length_bytes)
      if str_length[0]:
          byte_str = yield from read_or_raise(reader, str_length[0])
          try:
              return byte_str.decode(encoding='utf-8')
          except:
              return str(byte_str)
      else:
          return ''
docs: Read a string from a reader and decode it according to MQTT string specification
      :param reader: Stream reader
      :return: UTF-8 string read from stream