Hi Bram, hi Christian,
I am surprised, I would have expected you to point to the upcoming websocket implementation (see https://github.com/BaseXdb/basex/issues/1449)? To me the scenario described by Bram seems like a perfect fit for websockets, where you simply subscribe to such a generator and the server then delivers the results by notifying every subscriber.
Cheers Dirk
Senacor Technologies Aktiengesellschaft - Sitz: Eschborn - Amtsgericht Frankfurt am Main - Reg.-Nr.: HRB 105546 Vorstand: Matthias Tomann, Marcus Purzer - Aufsichtsratsvorsitzender: Daniel Grözinger
On 19. Apr 2018, at 23:01, Christian Grün <christian.gruen@gmail.commailto:christian.gruen@gmail.com> wrote:
Hi Bram,
There is no comparable feature in BaseX right now. But maybe it’s already helpful for you to know that all server-side results will always be streamed to the output stream of the HTTP response. As a result, it can easily happen that the client has received the first 10 results while the server is still evaluating your query.
If you want to have more control, you can define a result window via variables (e.g. $start and $length). Usually, if your query succeeds in quickly delivering the result 1-10, it shouldn’t take much longer to deliver result 11-20, 21-30, etc., so you can send multiple iterative requests to the server to receive the subsequent results.
Best, Christian
On Thu, Apr 19, 2018 at 11:02 AM, Bram Vanroy <Bram.Vanroy@ugent.bemailto:Bram.Vanroy@ugent.be> wrote: Dear list
I am curious to find out whether it is possible to stream results of a query, i.e. where a submitted query behaves as a generator. Especially for web interfaces this is useful: a user is presented with a result as soon as it is found, and doesn’t have to wait for all results to be gathered. Especially useful with large databases of course.
Preferably a way that works with the nodejs, PHP client but I am open to other suggestions.
Thanks in advance
Bram