You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Dec 18, 2018. It is now read-only.
It is great to see Project Bedrock moving forward in #1446 :)
One thing that I am noticing is that ConnectionContext is the connection object on the server while IConnection is the connection object on the client. And they both use IDuplexPipe as the underlying "bytes-passing" object.
This means that we can write libraries that only depend on IDuplexPipe to send and receive stuff, which is nice.
However, we can't do the same for connections:
For example, in a server-to-server scenario (and more generally, peer-to-peer), any device can initiate a connection to another device. And ideally, a device would want to manage all connections (both those that it initiated and those that where initiated to it) together.
So, let's say A connects to B, B connects to C and C connects to A. (So, we get a mesh network.)
How do we write a library that allows A to broadcast messages to B and C?
Another way to think about it is: Once a connection comes out of the "factory", it shouldn't matter how it came to be.
The text was updated successfully, but these errors were encountered:
I'm working on it. There's a master plan somewhere here but there are some design challenges to be worked through. Some discussion started here #1450 and I took a crack at it last night but the calling pattern is quite a bit different and there are some challenges with shutting down the connection that I haven't yet cracked yet (some of it is explained in that pull request). But I whole heartedly agree that the client can be represented by the ConnectionContext instead of the IConnection using a factory of some sort.
It is great to see Project Bedrock moving forward in #1446 :)
One thing that I am noticing is that
ConnectionContext
is the connection object on the server whileIConnection
is the connection object on the client. And they both useIDuplexPipe
as the underlying "bytes-passing" object.This means that we can write libraries that only depend on
IDuplexPipe
to send and receive stuff, which is nice.However, we can't do the same for connections:
For example, in a server-to-server scenario (and more generally, peer-to-peer), any device can initiate a connection to another device. And ideally, a device would want to manage all connections (both those that it initiated and those that where initiated to it) together.
So, let's say A connects to B, B connects to C and C connects to A. (So, we get a mesh network.)
How do we write a library that allows A to broadcast messages to B and C?
Another way to think about it is: Once a connection comes out of the "factory", it shouldn't matter how it came to be.
The text was updated successfully, but these errors were encountered: