Rails 5 ActionCable错误描述和连接被拒绝

4

我用Devise对ActionCable进行了身份验证,实现了一个基本的聊天功能。

module ApplicationCable
  class Connection < ActionCable::Connection::Base
    identified_by :current_user

    def connect
      self.current_user = find_verified_user
      logger.add_tags 'ActionCable', current_user.email
    end

    protected

    def find_verified_user # this checks whether a user is authenticated with devise
      if verified_user = env['warden'].user
        verified_user
      else
        reject_unauthorized_connection
      end
    end
  end
end

但是当用户有一个开放的聊天并且拒绝连接(因为用户已注销),我需要显示一个登录界面。

问题在于前端无法获取断开连接的原因。

如何发送带有参数的拒绝连接,比如“未经授权”?

1个回答

0
def find_verified_user # this checks whether a user is authenticated with devise
  if verified_user = env['warden'].user
    verified_user
  else
    message = "The user is not found. Connection rejected."

    logger.add_tags 'ActionCable', message # to console

    self.transmit error: message # this is what you wanted

    reject_unauthorized_connection
  end
end

另请参阅:如何从服务器终止对ActionCable频道的订阅?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接