Атмосфера request.onOpen никогда не вызывается. Соединение клиент-сервер перестало показывать: 101 протокол переключения

Я скачал «атмосферный чат» (джерси) и немного изменил его, потому что хотел, чтобы он работал внутри Jetty. На этой стороне все работает (автономно). Атмосфера 2.2.0-RC3 / Причал причала-9.2.0.M1

Но когда я помещаю их в Mule, request.onOpen никогда не вызывается. Вот кусок кода javascript (я не изменил пример):

var request = { url: 'http://myIP:8080/sc.eco/servlet/chat/',
                contentType : "application/json",
                logLevel : 'debug',
                transport : 'websocket' ,
                trackMessageLength : true,
                fallbackTransport: 'long-polling'};


request.onOpen = function(response) {
    content.html($('<p>', { text: 'Atmosphere connected using ' + response.transport }));
    input.removeAttr('disabled').focus();
    status.text('Choose name:');
};

Он отображается в консоли «Websocket успешно открыт»: введите здесь описание изображения, но он сложен в этом запросе:

Request URL:ws://myIP:8080/sc.eco/servlet/chat/?X-Atmosphere-tracking-id=0&X-Atmosphere-Framework=2.2.1-jquery&X-Atmosphere-Transport=websocket&X-Atmosphere-TrackMessageSize=true&X-Cache-Date=0&Content-Type=application/json&X-atmo-protocol=true
Request Method:GET
Status Code:101 Switching Protocols

введите здесь описание изображенияЕсть идеи? :С


person Ignacio Rubio    schedule 08.07.2014    source источник
comment
Я прочитал Жан-Франсуа Аркан, чтобы проверить, есть ли у вас брандмауэр или антивирус, который закрывает/блокирует соединение. Я проверил, изменив порт (с 8080 на 8484), но проблема осталась атмосфера-framework.2306103.n4.nabble.com/   -  person Ignacio Rubio    schedule 09.07.2014
comment
Mule использует Jetty 8 (см.: github.com/mulesoft /mule/blob/mule-3.5.0/pom.xml#L150 ) Может ли это создать проблему?   -  person David Dossot    schedule 15.07.2014
comment
Большое спасибо за ваш комментарий. Я снова протестировал (вне Mule для изоляции проблемы) с проектом в автономном режиме и с версией Jetty, которую использует Mule: Jetty 8.1.13.v20130916, и она также работает. Я продолжаю искать решение. Если что найду, то выложу   -  person Ignacio Rubio    schedule 17.07.2014
comment
Покажите свою конфигурацию Mule, укажите, какую версию Mule вы используете.   -  person David Dossot    schedule 17.07.2014
comment
Привет Дэвид, прошу прощения, что ничего не написал сюда, но скоро я уйду в отпуск и закрываю другие проблемы в проекте. Мы пока пошли альтернативным путем. В сентябре вернусь к нему :) большое-большое спасибо!   -  person Ignacio Rubio    schedule 23.07.2014
comment
@IgnacioRubio Вы когда-нибудь решали это? У меня такая же проблема.   -  person AfterWorkGuinness    schedule 13.11.2014
comment
@AfterWorkGuinness Нет, мы временно развернули проект Atmosphere на Tomcat (здесь проект работает) и связали его с сервисами Mule: S Я ожидаю, что в конце проекта у нас будет время это исправить.   -  person Ignacio Rubio    schedule 13.11.2014


Ответы (1)


У меня такая же проблема. Я мог бы решить эту проблему, установив enableProtocol в false в конфигурации запроса.

В вашем случае это будет выглядеть так:

var request = { url: 'http://myIP:8080/sc.eco/servlet/chat/',
            contentType : "application/json",
            logLevel : 'debug',
            transport : 'websocket' ,
            trackMessageLength : true,
            fallbackTransport: 'long-polling',
            enableProtocol: false };

Я пришел к тому, что это решение было первоначально предложено в этой темы.

person Bob    schedule 04.11.2016