The Connection is responsible for controlling the communication with the server, including the initial handshake.
It is constructed by the Implementation delegate of the ConnectionFactory.
It will normally be implemented with at least the following interceptors.
Close interceptor acts as a valve to stop requests on closed objects.
JMSException interceptor turns non JMSExceptions thrown by the generic backend into JMSExceptions.
Factory interceptor to construct the session facade and messaging api container.
Connection interceptor for handling connections, e.g. initial handshake, ping/pong and the exception handler.
Invoker interceptor sends remote requests over the network using the configured protocol.
Client interceptor used by the server to keep track of client connections.
Security interceptor used by the server to authenticate/authorise the request.