Behaviour for Phoenix Socket Client transport implementations.
Defines the interface for transport layers (WebSocket, etc.) that handle the underlying network connection for socket communication.
@callback close(socket :: pid()) :: :ok | {:ok, any()} | {:error, any()}
@callback open(url :: String.t(), opts :: Keyword.t()) :: {:ok, pid()} | {:error, any()}