7

我有一个带有子域的应用程序,当我添加一个子域时,我希望能够连接到所有子域的 WebSocket cable/config.ru

ActionCable.server.config.allowed_request_origins = ["domain.com",
 "sub1.domain.com", "sub1.domain.com"]

它工作正常,但我如何为所有子域设置别名,如下所示:

"[*.domain.com]"   

字符“ *”不起作用。

4

3 回答 3

7

Actioncable 现在支持正则表达式

用法如下:

Action Cable 将只接受来自指定来源的请求,这些请求作为数组传递给服务器配置。来源可以是字符串或正则表达式的实例,将对它们执行匹配检查。

ActionCable.server.config.allowed_request_origins = ['http://rubyonrails.com', /http:\/\/ruby.*/]

于 2015-12-15T16:38:56.980 回答
2

在这种情况下,您可以使用正则表达式。在环境文件(生产和开发)中使用:

config.action_cable.allowed_request_origins = [/(?:^(http|https):\/\/)?(?:([^.]+)\.)?#{ENV["domain"]}/]

作为 ENV["domain"] 应用程序运行的域。

于 2016-11-05T22:36:19.647 回答
0

[过时的答案]

ActionCable在 GitHub上的官方repo上的当前实现似乎还没有实现类似的东西。

于 2015-11-17T00:46:23.930 回答