Transport abstraction implemented by concrete client transports such as WebSocket or SSE adapters.
In the thread-centric protocol, transports are bound to a specific thread at construction time — the thread ID is part of the connection URL.
interface TransportAdapterThread ID this transport is bound to.
Shuts down the transport and releases any underlying resources.
Streams incoming protocol messages from the remote peer. Used by WebSocket transports where all events share one connection.
Opens the underlying connection (e.g. WebSocket handshake). For HTTP/SSE transports this is a no-op.
Opens an independent filtered SSE event stream.
Each call creates a new server connection with the given filter.
Returns undefined when the transport does not support per-subscription
streams (e.g. WebSocket), in which case the caller should fall back to
command-based subscriptions over events.
Sends a command and optionally returns an immediate response.