5

我在 Rails 5.0.0 上创建了一个项目。

此外,我在此视频中所做的完全一样:https ://www.youtube.com/watch?v=n0WUjGkDFS0

生成的频道除外。我生成了两个频道:聊天和评论。

我也并行阅读:https ://github.com/rails/rails/tree/master/actioncable

在 routes.rb 我添加了这一行:

mount ActionCable.server => '/cable'

在 application.rb 我添加了这一行:

config.action_cable.mount_path = '/cable'

结果,我运行了这个命令的一个项目:

rails server -b SERVER_IP -p 3020

此错误显示在控制台浏览器中:

WebSocket 连接到“ws://site.com/cable”失败:意外响应代码:404

运行项目的一段日志:

Started GET "/cable" for SERVER_IP at 2016-07-12 16:20:14 +0300
Cannot render console from SERVER_IP! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255
Started GET "/cable/" [WebSocket] for SERVER_IP at 2016-07-12 16:20:14 +0300
Request origin not allowed: example.com
Failed to upgrade to WebSocket (REQUEST_METHOD: GET, HTTP_CONNECTION: upgrade, HTTP_UPGRADE: websocket)
Finished "/cable/" [WebSocket] for SERVER_IP at 2016-07-12 16:20:14 +0300

错误可能是什么?我究竟做错了什么?

定义:

  • SERVER_IP - 这伪装了服务器的原始 IP 地址。

  • example.com- 这伪装了网站的原始 URL。

4

1 回答 1

5

确保您在 development.rb 文件中添加了这些行

config.action_cable.url = "ws://localhost:3000/cable"

config.action_cable.allowed_request_origins = [/http:\/\/*/, 
/https:\/\/*/]
于 2017-05-10T12:32:03.140 回答