gpt4 book ai didi

ruby-on-rails - 可以安装多根 ActionCable 电缆吗?

转载 作者:行者123 更新时间:2023-12-04 07:29:04 24 4
gpt4 key购买 nike

是否可以挂载多个ActionCable 电缆 在同一个 Rails 应用程序中?例如:

#routes.rb
Rails.application.routes.draw do
...
mount ActionCable.server => '/cable'
mount ActionCable.server => '/cable2'
end

我知道我可以使用同一根电缆拥有多个 channel ,但我需要为我的 channel 使用不同的身份验证方法。据我了解,使用同一根电缆是不可能的。

感谢您的帮助。

最佳答案

详见 Using ActionCable with multiple identification methods ,在同一 Rails 应用程序中使用不同身份验证方法的一种方法可以是:

# app/channels/application_cable/connection.rb

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

def connect
self.uuid = SecureRandom.urlsafe_base64
if env['warden'].user
self.current_user = find_verified_user
end
end

protected

def find_verified_user
return User.find_by(id: cookies.signed['user.id'])
end
end
end

已验证 channel :

class AuthenticatedChannel < ApplicationCable::Channel
def subscribed
reject and return if current_user.blank?
stream_for current_user
end
...

匿名 channel :

class AnonymousChannel < ApplicationCable::Channel
def subscribed
stream_from "channel_#{self.uuid}"
end
...

关于ruby-on-rails - 可以安装多根 ActionCable 电缆吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46793361/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com