大气 - 连接前需要修改 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
我面临的问题:
Cyberoam 防火墙有一个限制(在 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 的负责人)
我需要修改 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
我面临的问题:
Cyberoam 防火墙有一个限制(在 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 的负责人)