已经有人问过类似的问题,但是在我看来,所有提议的解决方案都不起作用。我在Heroku上有一个Rails应用,最近我添加了一个使用actionCable的页面。
页面在我的机器上以及Heroku管道中的登台应用程序上正确接收数据。但是,当我将登台应用程序推广到生产环境时,页面停止更新。
页面似乎成功连接并订阅了正确的频道。这是我在开发人员工具中看到的电缆:
因此已建立连接,但此后未收到任何更新。我的工作阶段应用程序和生产之间的唯一显着区别是生产使用自定义域。所有其他配置都以相同的方式完成。这是我的cable.yml
:
development:
adapter: async
test:
adapter: async
staging:
adapter: redis
url: <%= ENV["REDISTOGO_URL"] %>
production:
adapter: redis
url: <%= ENV["REDISTOGO_URL"] %>
我已使用这些自定义域通过以下代码配置actionCable:
config.action_cable.url = ENV["WEB_SOCKETS_URL"]
config.action_cable.allowed_request_origins = [ ENV["WEB_SOCKETS_ORIGINS"] ]
在Heroku上使用自定义域设置actionCable是否需要采取其他步骤?怎样才能成功连接但没有更新?
为了完整起见,我使用的是Rails 5.1.6和Ruby 2.6.3。