Это потому, что новое расширение перехватывает каждый соответствующий запрос и рассматривает его как рукопожатие WebSocket. Plain доходит до одного и того же URL-адреса пролетает до ресурсов JAX-RS. Стандартное получение - заполнение необходимого соединения: заголовок обновления - полученные и отклоненные до того, как любая логика REST может работать.
@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
@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 , так что сбивает с толку, если это проблема, которая требует исправления.
После перехода от Quarkus-websocket к Quarkus-websockets-next , любой http at wit to @websocket wath теперь с ошибками [code]"Connection" header must be "Upgrade" [/code] Это потому, что новое расширение перехватывает каждый соответствующий запрос и рассматривает его как рукопожатие WebSocket. Plain доходит до одного и того же URL-адреса пролетает до ресурсов JAX-RS. Стандартное получение - заполнение необходимого соединения: заголовок обновления - полученные и отклоненные до того, как любая логика REST может работать.[code]quarkus-websockets[/code]): [list] [*] Rest @get/Chat endpoint [*] a jsr-356 websocket @serverendpoint ("/CHAT") Пример воспроизведения с использованием: < /p>
io.quarkus quarkus-websockets
< /code> ChatResource.java[/code]: [code]@Path("/chat") @ApplicationScoped public class ChatResource { @GET public String hello() { return "Hello from REST!"; } } < /code> ChatEndpoint.java[/code]: [code]@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[/code]: [code] io.quarkus quarkus-websockets-next
< /code> ChatResource.java (unchanged)[/code]: [code]@Path("/chat") @ApplicationScoped public class ChatResource { @GET public String hello() { return "Hello from REST!"; } } < /code> ChatSocket.java[/code]: [code]@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[/code] или это ошибка? Потому что я внедряю некоторые конечные точки для стандартной спецификации, где я могу иметь конечные точки что -то вроде этого: < /p> [code]/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[/code] и теперь сбой запроса GET с Quarkus-websockets-next , так что сбивает с толку, если это проблема, которая требует исправления.
Я прочитал эту документацию -> websockets-next и справочное руководство websockets-next.
Я понимаю, как можно реализовать сообщение чата, потому что клиент реагирует на конечные точки, но я понятия не имею, как сервер может отправлять сообщения...
I have the following minimal Quarkus project example. Without the quarkus-amazon-lambda-http dependency, the project returns the correct response when the GET endpoint is called, and even a much larger one (10,000 items).
However when the...
После обновления моей версии fastapi до fastapi для использования fastapi-cli я получил ошибку, связанную с сокетами. Перерыл все темы но решения не нашел. Может ли кто-нибудь мне помочь?
# my socket.py file