--
---
You received this message because you are subscribed to the Google Groups "spdy-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to spdy-dev+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
On May 19, 2014 9:09 AM, "Fedor Indutny" <fe...@indutny.com> wrote:
>
> Hello William,
>
> Thanks for a response! I think this is a bit incorrect, if the client do not want to receive any push stream data - it should either CANCEL them or regulate it on the stream window level.
Can you clarify what specifically you think is incorrect? We diagnosis of what happened or my open questions? I don't fully understand.
Thanks. While it's possible that we could partially do that, to completely ignore the connection window for unconsumed push data would open us up to memory consumption issues. I do think we might want to lower the allowed stream window for push streams.
I'm on my phone at a coffee shop. I'll debug this when I get out to a real computer :)
Thanks for a response! I think this is a bit incorrect, if the client do not want to receive any push stream data - it should either CANCEL them or regulate it on the stream window level.
Anyway, I have started a server for you take a look: https://indutny.com:4443/ . It gets into that stalled state after one page load, if you will refresh the page - everything just hangs.
William,
I do agree up with you guys, but up to some extent.Possible solution to this "stall" could be transforming the list of unacked PUSHes into a LRU cache, evicting the stuff that wasn't used if the client wants to get more data from server (i.e. `reload` button in browsers). However, associating stream id with a browser's page should work just fine as well, but it does seem to be less fundamental fix to me.
I could not tell you anything about other clients, but node-spdy provides pretty raw access to the PUSH requests, because it isn't parsing any incoming data and assumes that the user will figure out, which data is needed and which is not.
Speaking of companies, the Voxer is using PUSH streams for completely different purpose: we are using it for delivery of events and some realtime data. I think that while this use case is rather unusual, it still has its own merits to be present and supported.
Let me know if I could help you with making it work better.