-
Notifications
You must be signed in to change notification settings - Fork 10.4k
Introduce new stream and multiplexed bedrock types #17213
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
Conversation
@davidfowl @anurse @halter73 thoughts? |
src/Servers/Connections.Abstractions/src/MultiplexedConnectionContext.cs
Outdated
Show resolved
Hide resolved
62d1880
to
f9b88b7
Compare
I spent the last few hours trying to update this PR to "split the world". Going to take a small break because it honestly was a lot to juggle here and I need to take a fresh look. Few open questions:
|
Poke @jkotalik |
777beb2
to
3894d70
Compare
Alright, this PR got a little large, so let me break it down into pieces. This PR consists of:
|
@@ -3,10 +3,9 @@ | |||
|
|||
namespace Microsoft.AspNetCore.Connections.Features | |||
{ | |||
public interface IQuicStreamFeature | |||
public interface IStreamDirectionFeature |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I didn't know if we wanted these to be on the StreamContext yet.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think StreamContext is different enough from ConnectionContext to justify its existence. Maybe this could be added to ConnectionContext with both defaulting to true, but as with StreamId, I'm not sure it's useful enough deserve be a top level property on ConnectionContext.
...ers/Connections.Abstractions/ref/Microsoft.AspNetCore.Connections.Abstractions.netcoreapp.cs
Outdated
Show resolved
Hide resolved
...ers/Connections.Abstractions/ref/Microsoft.AspNetCore.Connections.Abstractions.netcoreapp.cs
Outdated
Show resolved
Hide resolved
...ers/Connections.Abstractions/ref/Microsoft.AspNetCore.Connections.Abstractions.netcoreapp.cs
Outdated
Show resolved
Hide resolved
src/Servers/Connections.Abstractions/src/MultiplexedConnectionContext.cs
Outdated
Show resolved
Hide resolved
@jkotalik Is the change to |
src/Servers/Kestrel/Core/src/Internal/Http3ConnectionContext.cs
Outdated
Show resolved
Hide resolved
Feels like we're missing a shared interface between the MultiplexConnection and ConnectionContext. There should be a common type for the shared properties and methods. |
I mentioned that in my comment above. Probably; I need to mess around with the generate code to see what I can do. |
I was chatting with @halter73 yesterday, and he mentioned that we may want to consider making the multiplexed factory internal for now due to potential refactoring in how bedrock would work. If we were to make a base class for ConnectionContext, it would need to be public no matter what. I don't think it's a big deal, just something to note. |
...ers/Connections.Abstractions/ref/Microsoft.AspNetCore.Connections.Abstractions.netcoreapp.cs
Outdated
Show resolved
Hide resolved
🆙 📅 based on discussion yesterday. |
d817523
to
dae4b3d
Compare
We need to figure out how and when we're going to internalize this. Can you create an issue @jkotalik? |
Created the above issue. |
Fixes #17037.
Implements the following:
A majority of this right now is generated code, which probably can be improved. Right now, the generated code needs to be a separate class per context type (Multiplexed, Stream, and Connection) because each of the Transport classes derive from those. For example: