This is necessary because after reading the invalid
frame size from the underlying transport the transport
is left in a bad state. Any following reads will
likely throw more invalid frame size exceptions and
if they don’t they will be reading corrupted messages.
Closing forces the caller to discard the connection and
get a new one.