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

For create customized WebtransportSession #195 #196

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

chrislearn
Copy link
Contributor

No description provided.

@chrislearn
Copy link
Contributor Author

Simply put, I want to reuse types other than WebTransportSession and create my own custom WebTransportSession to meet specific business requirements.
For example, the current WebTransportSession is hard-coded with Request<()>, but in my specific case, I may have a custom Request object.
I may even need to handle whether it is a WEB_TRANSPORT request and error handling outside of WebTransportSession.

B: Buf,
{
#[allow(missing_docs)]
pub fn new(conn: &'a mut Connection<C, B>) -> Self {
Copy link
Contributor

@Ruben2424 Ruben2424 Jun 28, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the PR.
This should be part of the feature i-implement-a-third-party-backend-and-opt-into-breaking-changes because it is not part of the http3 spec.

In general I am not sure if just adding new functions is the right way to go.
The examples you mentions do not break the WebTransport RFC and sound reasonable to me. In my opinion this should be supported by our WebTransportSession. So the right step would be to improve our API.
What do you think?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Request<()> only be used in fn validate_wt_connect(request: &Request<()>) -> bool, is it possible move this validate outside and remove argument request: Request<()> from function accept?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would it help to make WebTransport::accept(...) generic like WebTransport::accept<T>(request: Request<T>,...)?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unfortunately, I use CustomRequest here, not just Request<Custom>.
Another issue is that even if Request<()> is needed, it seems that ownership is not required here, and &Request<()> will suffice.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any new ideas or plans on this?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi, i didn't have much time the last months. So nothing new from my side.

I am still not a big fan of just adding the new methods.
But since this is just experimental, maybe we could just merge it (with feature flag i-implement-a-third-party-backend-and-opt-into-breaking-changes) until we find a way to make the API more flexible? What do you think @hyperium/h3 ?

@chrislearn chrislearn changed the title For create customed WebtransportSession #195 For create customized WebtransportSession #195 Nov 30, 2023
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

Successfully merging this pull request may close these issues.

2 participants