使用Rails 5和ActionCable
"无法升级到WebSocket"与#34;未经授权的连接尝试被拒绝"。 有人能告诉我这两个错误之间的区别以及它们可能发生在哪些功能之下?我相信"未经授权的连接尝试被拒绝"发生在
App.cable = ActionCable.createConsumer();
我确实有:
def find_verified_user
if verified_user = env['warden'].user
verified_user
else
reject_unauthorized_connection
end
end
但我不确定升级错误。
我真正想要做的是当超时用户(未注销但超时)尝试发送消息时捕获。所以我不认为我必须在连接上捕获这个,但是请求。有没有办法处理请求错误?
此处的最终目标是在尝试发送邮件时将timedout用户重定向到登录页面。现在,如果超时用户发送消息,则消息在发送时不会显示,而不会向用户显示原因。
答案 0 :(得分:3)
“未经授权的连接尝试被拒绝”是reject_unauthorized_connection
电话的直接结果。
connect
调用reject_unauthorized_connection
导致“无法升级到WebSocket”。这意味着您的套接字连接尝试失败,并且您没有从HTTP模式切换(“升级”)到WebSockets模式。
如果我想实现一个超时用户权限来发送消息,我只需在数据库中保存最后发送的消息时间 - 在每个新消息之前检查它。