Correctly handle requests when a middleware passes an error to its callback

When a middleware fails we shouldn't pass the request to the underlying realtime framework.
It means that something went wrong and all the successive middleware in the stack are skipped.

When this happens i think that it makes sense to handle the request in the same way we handle the authorization. A connection should not be established.

As for the authorization if the `timeout` strategy in enabled a reconnection will be attempted every time a middleware fails.