Heroku 上带有 SSL 的 WebSockets - Chrome 和 FireFox 中的问题

Posted

技术标签:

【中文标题】Heroku 上带有 SSL 的 WebSockets - Chrome 和 FireFox 中的问题【英文标题】:WebSockets with SSL on Heroku - issues in Chrome and FireFox 【发布时间】:2013-11-04 06:09:08 【问题描述】:

我在 Heroku 上托管了一个使用 WebSockets 的聊天应用程序。该应用程序是 Rails 4.0.1 和 Ruby 2.0.0,并使用 gem 'websocket-rails'。

当我使用标准 http:// 时,该应用程序在 Safari、Chrome 和 Firefox 中运行良好。然后今天我在 Heroku 上添加了 SSL 端点。现在,该应用程序在 Safari 中运行良好,但在 Chrome 和 Firefox 中,加载任何页面(甚至只是静态页面)都需要超过 1 分钟。它正在挂断某些东西(我猜是 WebSocket 连接),但我很难调试根本问题。任何想法或尝试的东西都将不胜感激。

应用程序是:http://www.chat-correct.com。如果您在 Safari 中尝试,它应该会相对较快地加载页面,但如果您在 Chrome 或 Firefox 中尝试,您会看到它挂起。

我正在使用: Safari 版本 6.1 (8537.71) Chrome 版本 31.0.1650.39 测试版 火狐版本 22

更新

我已缩小问题范围,似乎与使用瘦 Web 服务器有关: 瘦 Web 服务器(v1.6.1 代号 Death Proof)

如果我将应用程序切换到 WEBrick,Chrome/Firefox 问题就会消失。但是,web socket-rails gem 不适用于 WEBrick,并且似乎只支持基于事件机器的 web 服务器(因此 Unicorn/Puma 是不可能的)。

【问题讨论】:

【参考方案1】:

试试彩虹! http://rainbows.rubyforge.org/ 基于unicorn,也可以配置为使用EventMachine进行网络并发。虽然公平地说,我遇到了你的问题,因为我在彩虹上有类似的问题。无论如何,我的设置略有不同,所以对你来说可能不是问题。

【讨论】:

以上是关于Heroku 上带有 SSL 的 WebSockets - Chrome 和 FireFox 中的问题的主要内容,如果未能解决你的问题,请参考以下文章

从ExpeditedSSL迁移到免费的Heroku SSL

自动SSL或加速ssl无法在heroku上运行

heroku:在免费计划上设置 SSL 证书?

Heroku + Cloudflare 完全免费的 SSL

Heroku 上的 HTTPS + SSL - Node + Express

如何为从 Google Domains 到 Heroku 的裸域设置 SSL?