我有一个带有子域的应用程序,当我添加一个子域时,我希望能够连接到所有子域的 WebSocket
cable/config.ru
ActionCable.server.config.allowed_request_origins = ["domain.com",
"sub1.domain.com", "sub1.domain.com"]
它工作正常,但我如何为所有子域设置别名,如下所示:
"[*.domain.com]"
字符“ *”不起作用。
我有一个带有子域的应用程序,当我添加一个子域时,我希望能够连接到所有子域的 WebSocket
cable/config.ru
ActionCable.server.config.allowed_request_origins = ["domain.com",
"sub1.domain.com", "sub1.domain.com"]
它工作正常,但我如何为所有子域设置别名,如下所示:
"[*.domain.com]"
字符“ *”不起作用。
用法如下:
Action Cable 将只接受来自指定来源的请求,这些请求作为数组传递给服务器配置。来源可以是字符串或正则表达式的实例,将对它们执行匹配检查。
ActionCable.server.config.allowed_request_origins = ['http://rubyonrails.com', /http:\/\/ruby.*/]
在这种情况下,您可以使用正则表达式。在环境文件(生产和开发)中使用:
config.action_cable.allowed_request_origins = [/(?:^(http|https):\/\/)?(?:([^.]+)\.)?#{ENV["domain"]}/]
作为 ENV["domain"] 应用程序运行的域。
[过时的答案]
ActionCable在 GitHub上的官方repo上的当前实现似乎还没有实现类似的东西。