如何处理 "Failed to construct WebSocket: The URL is invalid" JavaScript 异常?

How can I deal with an "Failed to construct WebSocket: The URL is invalid" JavaScript exception?

我正在尝试配置我的 Vaadin 应用程序(版本 7.7.15)以支持 IPv6,但 URL 编码不正确。

例如:如果ip是:fd71:2d5a:e15a:1ed3::1,在浏览器上这样访问:http://[fd71:2d5a:e15a:1ed3::1].

问题是字符“[”被替换为“%5B”,字符“]”被替换为“%5D”。

此编码导致 "Failed to construct WebSocket: The URL is invalid; JavaScriptException [SyntaxError]" 正如图片所描述的那样。

但是,如果我将@Push 注释从@Push(transport = Transport.WEBSOCKET_XHR) 修改为@Push(transport = Transport.LONG_POLLING),我就可以访问UI,但是 API 调用非常非常慢。

谁能告诉我怎样才能避免这些字符被编码?

谢谢, 乔治

更新:

正如您在下面链接的拉取请求中看到的那样,此错误已解决到 Atmosphere Framework 中: https://github.com/Atmosphere/atmosphere-javascript/pull/243

此致, 乔治