我在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
- 这伪装了网站的原始网址。
答案 0 :(得分:3)
确保在development.rb文件中添加了这些行
config.action_cable.url = "ws://localhost:3000/cable"
config.action_cable.allowed_request_origins = [/http:\/\/*/,
/https:\/\/*/]