ConnectionFailedException:Websocket连接失败

时间:2014-03-24 03:08:44

标签: websocket jms kaazing

我正在接管使用Kaazing Websocket (JMS edition) client side javascript library通过Web套接字连接连接到服务器的iOS应用程序。

我正在为我的iOS应用程序使用Phonegap,并且能够在Chrome和iOS模拟器上进行测试。大约30%的时间我从Chrome上的库测试中获得连接错误,70%用于在iOS模拟器/设备上进行测试。我得到一个异常被抛入缩小的js库,它只是说" ConnectionFailedException:Websocket连接失败"似乎这是一个特定于浏览器的问题,但我无法对此进行任何进一步的处理。

我无法直接查看位于英国的服务器,但要求他们提供调试日志。所以我从服务器询问了日志,这些是我发现的错误可能是原因:

  

2014-03-05 08:09:23,670 [NioProcessor-15] DEBUG session.revalidate - 未配置WebSocket授权超时,因此无法推断出重新验证时间。
  2014-03-05 08:09:23,670 [NioProcessor-15] INFO session.revalidate - WebSocket会话[176128]未被重新验证,因为没有为协商的" x-kaazing-http-指定超时重新验证"扩展

有人对此x-kaazing-http-revalidate有任何想法,如果没有,调试这些Websocket连接的正确方法是什么?

1 个答案:

答案 0 :(得分:3)

完全免责声明,我在Kaazing工作。

x-kaazing-http-revalidate是一个Kaazing HTTP扩展,在建立WebSocket连接时进行协商。这是通过在gateway-config.xml文件中设置authorization-timeout来完成的(我们发布的配置文件有一个示例)。此扩展的目的是定期重新验证用户的授权,因为权限可能会在长时间连接的持续时间内发生变化。

如果与服务提供商关联的某些中介/代理在WebSocket连接请求中注入未知或可疑的标头,则可能发生{p> ConnectionFailedException : WebSocket connection failed。如果注入的头部未知/可疑,那么Kaazing网关将无法完成连接,以避免入侵者被窃听。使用安全的TLS / SSL连接应解决中间相关问题。

要调试和设置安全的javascript客户端,请按照documentation中的说明操作。您还可以使用 WebSocket-debug.js 而不是 WebSocket.js jms-javascript.html 文件中的脚本标记进行更多日志记录。还有Walkthrough: Deploy a JavaScript JMS App as a Hybrid iOS App