ruby-on-rails - Heroku:Rails 5 ActiveCable配置问题。 WebSocket握手期间出错: 'Upgrade' header 丢失

标签 ruby-on-rails sockets heroku websocket actioncable

我一直在使用Rails 5和ActiveCable实现一个简单的聊天应用程序。这个应用程式在本地运作良好。但是,当我尝试在heroku上进行测试时,我在JS控制台中获得了以下内容:

“WebSocket握手期间出错:缺少“升级” header ”

我做了什么:
我遵循了这个guide
我设置了cable.yml

production:
  adapter: redis
  url: redis://rediscloud:url_here

我在production.rb中设置了URL
Rails.application.configure do
    config.web_socket_server_url = "wss://my-app.herokuapp.com/cable" 

我设置了允许的主机。
 config.action_cable.allowed_request_origins =
    ['https://my-app.herokuapp.com',
    'http://my-app.herokuapp.com']

但这无济于事。有什么想法为什么会发生此错误,或者我该如何解决?

问候。

最佳答案

问题出在默认服务器上。

默认服务器服务器为Thin。它发送了不正确的回复。

我已根据this指南将服务器改回了puma,并且无需进行任何代码更改即可解决此问题。

关于ruby-on-rails - Heroku:Rails 5 ActiveCable配置问题。 WebSocket握手期间出错: 'Upgrade' header 丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42269972/

相关文章:

c - 使用 RAW 套接字发送 SYN 后未收到 SYN/ACK

ruby-on-rails - "Order by""group by"计数的结果?

ruby-on-rails - 在 rails 2.3.18 中使用邮件 gem 发送邮件

ruby-on-rails - 使用 Ruby 正确处理 Stripe 错误和异常以实现一次性收费

c - 听(): invalid argument

Heroku 上我的 Sinatra 应用程序中的 Javascript 文件出现 404'ing

ruby-on-rails - 设计 + RSpec : How to authenticate a user?

linux - 有没有办法在 RISC-V 中运行网络(套接字)程序?

node.js - 部署到 heroku 后,firebase 身份验证无法正常工作。仍然在本地主机 :4200 的开发中工作

firefox - Heroku + CDN Cloudfront + 字体 - Firefox 错误