Behaviour for socket transports.
Transports are passive by default. Use activate/1 to switch to
{active, :once} mode for receiving a single socket message.
All callbacks return the (potentially updated) transport struct.
Summary
Types
Callbacks
@callback connect(host :: String.t(), port :: :inet.port_number(), opts :: [option()]) :: {:ok, t()} | {:error, term()}
@callback upgrade( socket :: :gen_tcp.socket(), host :: String.t(), port :: :inet.port_number(), opts :: [option()] ) :: {:ok, t()} | {:error, term()}