子域上的ActionCable而不是subdir

Dja*_*oSi 9 ruby-on-rails actioncable

我试图让ActionCable在子域上工作.

问题是,只要我改变以下行

config.action_cable.mount_path = '/'
Run Code Online (Sandbox Code Playgroud)

该应用程序不再工作.但ActionCable适用于子域.是否有任何解决方案在没有子目录的子域上运行ActionCable /cable

jem*_*ger 3

如果您不使用带有子 uri 的应用内服务器,您似乎需要将其作为独立服务器运行: https: //github.com/rails/rails/tree/master/actioncable#consumer -配置

您可以像这样指定电缆 url:

config.action_cable.url = 'ws://cable.example.com:28080'
Run Code Online (Sandbox Code Playgroud)

有线服务器与普通应用程序服务器是分开的。它仍然是一个 Rack 应用程序,但它是它自己的 Rack 应用程序。推荐的基本设置如下:

# cable/config.ru
require_relative '../config/environment'
Rails.application.eager_load!

run ActionCable.server
Run Code Online (Sandbox Code Playgroud)

然后使用 bin/cable ala 中的 binstub 启动服务器:

#!/bin/bash
bundle exec puma -p 28080 cable/config.ru
Run Code Online (Sandbox Code Playgroud)

https://github.com/rails/rails/tree/master/actioncable#standalone