Hello, I intend to implement a service that supports multi-protocol in the same port.
These protocols must contain HTTP+H2 and a binary protocol (for example ssh).
When a user sent a request, the application must detect which protocol is correct, after that suitable codec must be chosen.
I have no good idea how stream's data can be check without polling.
I have an idea: I can implement one Encoder/Decoder for these protocols with an enum data type, but I'm sure it's not really good idea.
enum StrangeProto {
H1: http1,
H2: http2,
WebSocket: ws,
Ssh: ssh,
}
impl Decoder for StrangeProto {
type Item = Self;
type Error = io::Error;
...
}
I will so thankful for your valuable comments.