Repository: quarkusio/quarkus
Issue: WebSockets in Extensions

## Describe the bug
From https://quarkusio.zulipchat.com/#narrow/stream/187030-users/topic/Dev.20UI.3A.20Log.20stream.20not.20working.20anymore

Recent version of Quarkus (seems like 1.13.3 and 2.0.Alpha*) the extensions that use WebSockets sometimes get an error (Request already read) when trying to upgrade the request to Websocket.

Example, the websocket that allows Subscriptions on GraphQL: https://github.com/quarkusio/quarkus/blob/d411ab5f990269a44a9587410f6478d6d97964a7/extensions/smallrye-graphql/runtime/src/main/java/io/quarkus/smallrye/graphql/runtime/SmallRyeGraphQLSubscriptionHandler.java#L47

The order of that route is set to `Integer.MIN_VALUE`, but seems like some other routes too.

One option, as discussed with @cescoffier, is to not use a normal route that does an upgrade, but to allow extensions to produce a new BuildItem specifically for WebSockets, that then gets added to the server.

### Expected behavior
(Describe the expected behavior clearly and concisely.)
The Websocket should always work.

### Actual behavior
(Describe the actual behavior clearly and concisely.)
The WebSocket sometimes work

## To Reproduce

Link to a small reproducer (preferably a Maven project if the issue is not Gradle-specific).

Get https://github.com/phillip-kruger/graphql-experimental/tree/Subscriptions
(Note the branch is `Subscriptions`)

Build the root, the `cd` into subscription-example, run `quarkus:dev` and go to localhost:8080.
When you click on connect, it sometimes work.


### Configuration
```properties
# Add your application.properties here, if applicable.

```

### Screenshots
(If applicable, add screenshots to help explain your problem.)

## Environment (please complete the following information):

### Output of `uname -a` or `ver`

`Linux pkruger 5.11.20-300.fc34.x86_64 #1 SMP Wed May 12 12:45:10 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux`

### Output of `java -version`

```
openjdk version "11" 2018-09-25
OpenJDK Runtime Environment 18.9 (build 11+28)
OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)
```
### GraalVM version (if different from Java)

### Quarkus version or git rev

`999-SNAPSHOT`

### Build tool (ie. output of `mvnw --version` or `gradlew --version`)

```
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /opt/maven/apache-maven-3.6.3
Java version: 11, vendor: Oracle Corporation, runtime: /opt/JDK/jdk-11
Default locale: en_ZA, platform encoding: UTF-8
OS name: "linux", version: "5.11.20-300.fc34.x86_64", arch: "amd64", family: "unix"
```

## Additional context
(Add any other context about the problem here.)


Changed files:
extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/VertxHttpRecorder.java

diff --git a/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/VertxHttpRecorder.java b/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/VertxHttpRecorder.java
index 971871c9e06..9a447378887 100644
--- a/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/VertxHttpRecorder.java
+++ b/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/VertxHttpRecorder.java
@@ -143,10 +143,7 @@ public void handle(HttpServerRequest httpServerRequest) {
             //as it is possible filters such as the auth filter can do blocking tasks
             //as the underlying handler has not had a chance to install a read handler yet
             //and data that arrives while the blocking task is being processed will be lost
-            if (httpServerRequest.method() != HttpMethod.GET) {
-                //we don't pause for GET requests, as there is no data
-                httpServerRequest.pause();
-            }
+            httpServerRequest.pause();
             Handler<HttpServerRequest> rh = VertxHttpRecorder.rootHandler;
             if (rh != null) {
                 rh.handle(httpServerRequest);