大气 - 连接前需要修改 ws URL

Atmosphere - Need to modify ws URL before connection

我需要修改 ws url 才能建立 websocket 连接。

我在服务器代码中使用 @ManagedService 并使用 $.atmosphere.subscribe(request) 从客户端订阅。

我有以下设置:

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

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

我面临的问题: Cyber​​oam 防火墙有一个限制(在 WAF 中)GET URL 中的最大字符不能超过 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,在它连接之前附加所有必要的 headers 和参数?

是的,我在发出初始请求时设置了 attachHeadersAsQueryString:false,显然在进行 WebSocket 连接时它不会连接丢失的 headers 信息。

任何 suggestions/thoughts 将不胜感激。 谢谢。

使用 request.attachHeadersAsQueryString = false 所以 mo 查询字符串将被传递。您可能需要升级到最新版本 Javascript

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

-- Jeanfrancois(Atmosphere 的负责人)