Cometd через веб-сокет: «неизвестный транспорт Байе» с Cometd 8.0.2JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Cometd через веб-сокет: «неизвестный транспорт Байе» с Cometd 8.0.2

Сообщение Anonymous »

Я пытаюсь подключиться к серверу Cometd через клиент WebSocket в своем приложении.
Ниже приведены зависимости, которые я добавил в pom.xml.

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





org.cometd.java
cometd-java-client-common
8.0.2



org.cometd.java
cometd-java-client-websocket-jetty
8.0.2




org.cometd.java
cometd-java-client-http-common
8.0.2



org.cometd.java
cometd-java-client-http-jetty
8.0.2







org.cometd.java
cometd-java-server-common
8.0.2



org.cometd.java
cometd-java-server-http-jakarta
8.0.2



org.cometd.java
cometd-java-server-http-jetty
8.0.2



org.cometd.java
cometd-java-annotation-server
8.0.2



org.cometd.java
cometd-java-annotation-server-jakarta
8.0.2



org.cometd.java
cometd-java-server-websocket-jakarta
8.0.2







org.cometd.java
cometd-java-common
8.0.2




Я использую Jetty версии 12.0.8
Приложение успешно создано, но когда я запускаю приложение, оно завершается с ошибкой 400 и кодом ошибки. СООБЩЕНИЕ: Неизвестный транспорт Байе. Допускаю ли я какую-либо ошибку в зависимостях, которая приводит к ошибке?
Я пробовал отлаживать приложение.
Элемент управления переходит к поиску метода AbstactHttpTransport, который является частью Comet-java-server-common-8.0.2.jar.
Транспорт поставляется как
  • WebSocket
  • Длинный опрос
  • опрос обратного вызова
Метод поиска AbstractHttpTransport возвращает значение null, из-за чего возникает ошибка Неизвестный транспорт Байе.

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

public static AbstractHttpTransport find(BayeuxServer bayeuxServer, CometDRequest request) {
Iterator var2 = bayeuxServer.getAllowedTransports().iterator();
while(var2.hasNext()) {
String transportName = (String)var2.next();
ServerTransport serverTransport = bayeuxServer.getTransport(transportName);
if (serverTransport instanceof AbstractHttpTransport transport)
{
if (transport.accept(request)) {
return transport;
}
}
}
return null;
}

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

bayeuxServer.getAllowedTransports()
возвращает 3
  • веб-сокет
  • Длинный опрос
    < li>callback-polling
bayeuxServer.getTransport("websocket") возвращает WebSocketTransport@40ebb56[websocket]
bayeuxServer.getTransport("long-polling") возвращает JSONHttpTransport@116efe65[long-polling]
bayeuxServer.getTransport("callback-polling") возвращает JSONPHttpTransport@2d97344c[callback-polling]< /p>
Для транспорта Websocket он не попадает в блок ниже, если

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

if (serverTransport instanceof AbstractHttpTransport transport) {
if (transport.accept(request)) {
return transport;
}
}
потому что WebSocketTransport является экземпляром AbstractWebSocketTransport, но не AbstractHttpTransport.
Поэтому он не может войти в блок if, поэтому метод принятия будет не выполняться.
Для длинного опроса он попадает в первый блок if, поскольку JSONHttpTransport является экземпляром AbstractHttpTransport, но метод принятия возвращает false, поскольку метод запроса в нашем случае — GET и если метод запроса не POST, то метод принятия возвращает false.
То же самое относится и к JSONPHttpTransport. Можете ли вы предложить мне решение этой проблемы?
Но как заставить этот метод поиска возвращать правильный BayeuxTransport? Какие-нибудь изменения нужно внести в pom.xml?

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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Cometd через веб-сокет: «неизвестный транспорт Байе» с Cometd 8.0.2
    Anonymous » » в форуме JAVA
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous
  • Cometd через веб-сокет: «неизвестный транспорт Байе» с Cometd 8.0.2
    Anonymous » » в форуме Apache
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous
  • Cometd через веб-сокет: «неизвестный транспорт Байе» с Cometd 8.0.2 [дубликат]
    Anonymous » » в форуме JAVA
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Cometd через веб-сокет: «неизвестный транспорт Байе» с Jetty 12.0.8
    Anonymous » » в форуме JAVA
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Cometd через веб-сокет: «неизвестный транспорт Байе» с Jetty 12.0.8
    Anonymous » » в форуме JAVA
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous

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