【问题标题】:websocket on Saucelabs immediately drops connection (code 1006)Saucelabs 上的 websocket 立即断开连接(代码 1006)
【发布时间】:2014-08-14 09:57:32
【问题描述】:

我正在尝试为运行 websockets 的应用程序运行一些简单的测试。 wesocket 连接突然停止,测试失败。 这些测试根本与 websockets 无关。它们是关于单击页面上的一个按钮,该按钮仅在通过 websocket 接收到一些数据后才会出现。我附上了手动会话的屏幕截图。

【问题讨论】:

  • 我遇到了同样的事情,并向 Sauce Labs 支持提交了一张票。我会让你知道结果。
  • 您好,工单解决了吗?
  • 没有。我猜 Sauce Connect 目前不支持 WebSockets。他们会在添加时更新我。

标签: angularjs websocket saucelabs


【解决方案1】:

到目前为止,它还没有被直接支持(SauceLabs 使用 Squid 作为他们的 Connect Plugin 的代理服务器,这在他们的末端引入了这个限制)。

但是,如果您仍想使用 Sauce Connect - 您可以通过应用 I blogged about here 的变通方法轻松解决此问题。

基本思路是这样的:

  1. 在可公开访问的 URL 上托管一个空白页面(例如:qa.yoursite.com/test-container.html)。除了对 localhost 的脚本引用(类似于 localhost/injected.js)之外,此页面不包含任何内容
  2. 当您在域上使用 -D 标志启动 Sauce Connect(如果您使用的是 Travis CI,请阅读我的博客条目,那里有评论):

    bin/sc -D *.yoursite.com

  3. 让您的机器/CI 服务器在本地托管注入的.js 文件。该文件可以执行 WebSockets 测试,即使它是通过 SSH 隧道获取的 - 因为它包含在非隧道页面 (yoursite.com/test-container.html)

【讨论】:

    【解决方案2】:

    自从 orcaman 的博客以来,SauceLabs 已经在他们的脚本中添加了https://docs.travis-ci.com/user/sauce-connect/#Additional-options。您现在可以直接从您的.travis.yml 指定direct_domainsno_ssl_bump_domainstunnel_domains

    我使用了以下配置

    # https://docs.travis-ci.com/user/sauce-connect/
    sauce_connect:
      username: "jdanekrh"
      access_key:
        secure: "****"
      no_ssl_bump_domains: "127.0.0.1,localhost"
    

    no_ssl_bump_domains 应该防止 squid 代理破坏我的 WebSockets。它似乎对我有用。 = [1], [2]

    来源:https://wiki.saucelabs.com/display/DOCS/Troubleshooting+Sauce+Connect 部分禁用 SSL Bumping。

    1. https://travis-ci.org/jdanekrh/dispatch-console-tests/jobs/224632420
    2. https://saucelabs.com/beta/builds/9fd55cc6a33a44bfa3653896d5cfb3dc

    【讨论】:

    • 不过,我不太明白该选项的含义。 SauceLabs 和我的网站之间的数据不会加密?可能不会,因为它在隧道内......
    猜你喜欢
    • 2020-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-04
    • 2018-08-20
    • 1970-01-01
    • 1970-01-01
    • 2021-10-06
    相关资源
    最近更新 更多