Quarkus websockets затем перехватывает http -запросы при использовании аннотации @websocketJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Quarkus websockets затем перехватывает http -запросы при использовании аннотации @websocket

Сообщение Anonymous »

После перехода от Quarkus-websocket к Quarkus-websockets-next , любой http at wit to @websocket wath теперь с ошибками

Код: Выделить всё

"Connection" header must be "Upgrade"
Это потому, что новое расширение перехватывает каждый соответствующий запрос и рассматривает его как рукопожатие WebSocket. Plain доходит до одного и того же URL-адреса пролетает до ресурсов JAX-RS. Стандартное получение - заполнение необходимого соединения: заголовок обновления - полученные и отклоненные до того, как любая логика REST может работать.

Код: Выделить всё

quarkus-websockets
):
  • Rest @get/Chat endpoint
  • a jsr-356 websocket @serverendpoint ("/CHAT")
    Пример воспроизведения с использованием: < /p>

    io.quarkus
    quarkus-websockets

    < /code>
    ChatResource.java[/code]:

    Код: Выделить всё

    @Path("/chat")
    @ApplicationScoped
    public class ChatResource {
    @GET
    public String hello() {
    return "Hello from REST!";
    }
    }
    < /code>
    ChatEndpoint.java
    :

    Код: Выделить всё

    @ServerEndpoint("/chat")
    @ApplicationScoped
    public class ChatEndpoint {
    @OnOpen
    public void onOpen(Session session) { /*...*/ }
    
    @OnMessage
    public void onMessage(Session session, String msg) {
    session.getAsyncRemote().sendText("Echo:" + msg);
    }
    }
    < /code>
    Behavior
    GET http://localhost:8080/chat → 200 OK with “Hello from REST!”
    ws://localhost:8080/chat → WebSocket handshake succeeds
    With the new quarkus-websockets-next
    :

    Код: Выделить всё

    io.quarkus
    quarkus-websockets-next
    
    < /code>
    ChatResource.java (unchanged)
    :

    Код: Выделить всё

    @Path("/chat")
    @ApplicationScoped
    public class ChatResource {
    @GET
    public String hello() {
    return "Hello from REST!";
    }
    }
    < /code>
    ChatSocket.java
    :

    Код: Выделить всё

    @WebSocket(path = "/chat")
    @ApplicationScoped
    public class ChatSocket {
    @OnOpen
    public void onOpen(WebSocketConnection conn) { /*...*/ }
    
    @OnMessage
    public void onMessage(WebSocketConnection conn, String msg) {
    conn.sendText("Echo:" + msg).subscribe().with(r -> {}, t -> {});
    }
    }
    < /code>
    Behavior
    GET http://localhost:8080/chat
    → fails with
    "Connection" header must be "Upgrade"
    < /code>
    ws://localhost:8080/chat → WebSocket handshake succeeds
    Is this expected from the quarkus-websockets-next
    или это ошибка? Потому что я внедряю некоторые конечные точки для стандартной спецификации, где я могу иметь конечные точки что -то вроде этого: < /p>

    Код: Выделить всё

    /queries/{queryName}/events
    < /code>
    As per the specification, it should do the following:
    Returns all events that match the query or creates a new Websocket subscription.
    < /code>
    This was working with the quarkus-websockets
    и теперь сбой запроса GET с Quarkus-websockets-next , так что сбивает с толку, если это проблема, которая требует исправления.

    Подробнее здесь: https://stackoverflow.com/questions/795 ... -websocket
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»