Атмосфера - необходимо изменить URL-адрес ws перед подключением

Мне нужно изменить URL-адрес ws, прежде чем он установит соединение через веб-сокет.

Я использую @ManagedService в коде сервера и подписываюсь со стороны клиента, используя $.atmosphere.subscribe(request).

У меня следующая установка:

Cyberoam firewall --> Apache httpd(mod_proxy_ajp,mod_jk for load balancing) --> Glassfish

Primary Transport --> WebSocket
Fallback Transport --> long-polling

Проблема, с которой я столкнулся: Брандмауэр Cyberoam имеет ограничение (в WAF), согласно которому максимальное количество символов в URL-адресе GET не может превышать 50 символов. Но когда я нажимаю подписаться в атмосфере, он создает URL со всеми параметрами X-Atmosphere-.. вместе с ним.

Например, ws://localhost:8080/chat?X-Atmosphere-tracking-id=5ebed4c5-0b90-4166-88b2-9f273719ab75&X-Atmosphere-Framework=2.2.1-jquery&X-Atmosphere-Transport=websocket&Content-Type=application/json&X-atmo-protocol=true") явно превышает допустимые пределы.

Мне просто нужно знать, могу ли я каким-то образом создать URL-адрес в коде моего сервера, добавив все необходимые заголовки и параметры перед подключением?

Да, я установил attachHeadersAsQueryString:false при выполнении первоначального запроса, и, очевидно, он не соединяется с отсутствующей информацией заголовков при выполнении соединения WebSocket.

Любые предложения/мысли будут с благодарностью. Благодарю вас.


person Java_User    schedule 22.06.2015    source источник


Ответы (1)


Используйте request.attachHeadersAsQueryString = false, чтобы строка запроса была передана. Возможно, вам потребуется обновить Javascript до последней версии.

https://github.com/Atmosphere/atmosphere-javascript

-- Жан-Франсуа (глава Atmosphere)

person jfarcand    schedule 22.06.2015
comment
Спасибо за быстрый ответ @jfarcand. Я сразу же попробую последнюю версию и дам вам знать, если это сработает. - person Java_User; 22.06.2015
comment
Сейчас это работает. Спасибо за вашу помощь. Проблема была с атмосферой.js - person Java_User; 23.06.2015