【问题标题】:ActionCable in production repeated 101 responses生产中的 ActionCable 重复 101 个响应
【发布时间】:2018-05-28 04:50:10
【问题描述】:

我正在尝试为我们的 rails 应用程序部署一个独立的 ActionCable 服务器。该应用程序在开发模式下本地运行良好,但部署到生产时客户端无法建立连接。问题表现如下:

这些是带有升级响应的重复 101 Switching Protocol 请求。这些请求永远不会比这更进一步,并且以大约六秒的间隔重复。在我正在运行 Puma 的服务器上,我可以看到传入的请求:

我已确保我在主域和子域之间共享 cookie(并且可以看到正在传递的 cookie),但我从未看到连接升级。

一些注意事项:

  • 连接未通过 SSL
  • 我已经测试过我们的公司防火墙没有阻止 WebSockets
  • 有线服务器托管在 GCP 云计算实例上
  • 正在使用 Puma 运行运动电缆
  • 我可以看到在第二个 WebSocket 请求上发送了一些传出帧,但没有传入帧。

我没有想法,所以希望能对我接下来可以尝试什么来调试这个问题提出一些想法!

【问题讨论】:

  • 这个stackoverflow.com/questions/37871074/…怎么样,也许有一些关于http 101 actioncable的讨论
  • 到目前为止,我几乎浏览过 StackOverflow 上可能与此相关的所有内容!与那篇文章不同的是,我使用的不是 Thin,而是 Puma。
  • 您是否阅读过有关握手电缆blog.honeybadger.io/… 的信息,您会在这篇文章中包含有关您的服务器的任何设置吗?这篇文章也有一些有趣的信息,但你应该把它翻译成英文jianshu.com/p/f08393da80b5

标签: ruby-on-rails actioncable


【解决方案1】:

所以我最终弄明白了。对于那些追随我的人来说,这是一个关于 cookie 名称间距的问题。本质上,cookie 没有设置在域级别,因此没有与有线服务器(位于子域上)共享。

如果您遇到类似问题,请尝试在开发模式下运行有线服务器,而应用程序在生产中运行 - 额外的日志输出应该可以更容易地找出发生了什么。

【讨论】:

    【解决方案2】:

    当服务器上的 Redis 连接失败时,我遇到了这个问题。我有一个与 Redis 关联的无效 URL,修复了这个问题,为我解决了这个问题。

    【讨论】:

      猜你喜欢
      • 2018-09-25
      • 2016-10-18
      • 1970-01-01
      • 1970-01-01
      • 2020-10-19
      • 1970-01-01
      • 2017-07-04
      • 2017-04-09
      • 2017-02-17
      相关资源
      最近更新 更多