Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for Server Push #284

Open
sudaques opened this issue Dec 25, 2024 · 4 comments
Open

Support for Server Push #284

sudaques opened this issue Dec 25, 2024 · 4 comments

Comments

@sudaques
Copy link

sudaques commented Dec 25, 2024

It is clearly stated in both the README and the documentation that Server Pushes are not yet supported. Are there any substantial reasons for this or is it just one of those rarely used features that don't seem to be worth the hustle for now? Are there any plans to bring it in any time soon and are you open for pull requests?

For context: I'm trying to replace WebSockets with pure bidirectional HTTP/3 communication in one of my services, and being able to hold a stream with server pushes is crucial. I have already considered opening a bare QUIC stream for this purpose, but this is definitely a very dirty hack which should not be used in produciton

@tatsuhiro-t
Copy link
Member

In general, server push is dead. It is very unfortunate that http/3 inherits it from http/2. If you are finding something that replaces websocket, webtransport would be the best one at the moment.
http/3 server push introduced very subtle synchronization issue that needs careful implementation. But I do not think it worth the time to implement now that it is very unpopular. No plan to add it again.

@sudaques
Copy link
Author

In general, server push is dead. It is very unfortunate that http/3 inherits it from http/2. If you are finding something that replaces websocket, webtransport would be the best one at the moment. http/3 server push introduced very subtle synchronization issue that needs careful implementation. But I do not think it worth the time to implement now that it is very unpopular. No plan to add it again.

Yeah, I'm aware that server push is dead for most purposes. We were thinking in the direction of WebTransport, but since our work is not intended for browsers, WebTransport seemed like an overkill. It introduces a lot of protocol layers that are only needed for browser communication. Anyway, in this case would you consider merging a pull request with server push from my side some time in the future?

@tatsuhiro-t
Copy link
Member

I implemented server push in nghttp3 and removed sometime ago. As I said I have no plan to add it again.

@sudaques
Copy link
Author

Oh, I see. I thought the only consideration here is the amount of work on your side to implement this (that's why I proposed to put this on me). Sad, but understandable. I'll continue working on extending the communication protocol specifically for our case then, I must admit it is a bit exotic. Thanks for clearing this out for me

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants