View Single Post
07-27-21, 08:41 AM   #5
cheesewiz
A Fallenroot Satyr
Join Date: Jan 2021
Posts: 29
Originally Posted by elcius View Post
the GetAll request is not instant, it streams the auctions over at 2048/second, you can work with the results instantly but you'll obviously only have access to the data that has already arrived.
Also new auctions (anything posted after the request was made) will arrive last in the stream or possibly not at all, and obviously any auctions created after the request completes will not be received.
It is the fastest way to get the prices of multiple items, but the main draw back is that the data is expiring rapidly, so if it takes you 3-4 minutes to make use of that data and list all your items, the prices you're working with may be 3-4 minutes out of date, and to get a more recent price for any item you need to clear the results to make another request, this removes the ability to directly purchase auctions from the GetAll results so all purchases would need to again be done with a traditional page-based scan.
Also people generally do a pretty poor job of implementing GetAll requests, with most just trying to feed the entire list of results into their auction data handler at the end of the scan instead of processing it as it arrives, this leads to huge performance problems.
GetAll isn't the way to go. SendBrowseQuery() has no cooldown and you can keep calling RequestMoreBrowseResults() until you exhaust returned items. This gives a dump of the entire auction house in under 5 seconds. I just need a way to array the results with a list I have then sort that list by cheapest price listed.
  Reply With Quote