Transport combining two transports. One of which is the base transport (like TCP), and another
one is a higher-level transport (like WebSocket). Similar to [
OrTransport
], this tries to
dial first with the outer connection, and if that fails, with the base one. The main difference
is that incoming connections can be accepted on either one of them. For this to work, a
switch must be provided when handling incoming connections. For TCP, this can be achieved with
the
peek
method on the underlying [
TcpStream
].
ListenerEvent
s from the base transport are cloned and routed to the outer transport via the
ProxyTransport
, with the exception of upgrades.