Handler behaviour for incoming connection messages.
Invoked when a new payload arrives.
Invoked when a connection gets disconnected .
@type connection_id() :: non_neg_integer()
@type state() :: any()
@type stream_id() :: String.t()
@type t() :: module() | struct()
@callback handle_data(binary(), state()) :: {:ok, state()} | :stop
@callback handle_disconnected(state()) :: :ok
@callback init(t()) :: state()