我有下面的代碼在我的Rails應用程序發送ActionCable廣播: ActionCable.server.broadcast 'notification_channel', notification: 'Test message'
發送ActionCable特定用戶
連接如下所示:
module ApplicationCable
class Connection < ActionCable::Connection::Base
identified_by :current_user
def connect
self.current_user = find_verified_user
end
def session
cookies.encrypted[Rails.application.config.session_options[:key]]
end
protected
def find_verified_user
User.find_by(id: session['user_id'])
end
end
end
但是,所有用戶登錄到該應用程序將收到它。 identified_by
只確保登錄的用戶可以連接到該頻道,但不限制哪些用戶獲得廣播。
有沒有辦法只發送廣播給某個用戶?
我能想到這樣做的唯一途徑是:
ActionCable.server.broadcast 'notification_channel', notification: 'Test message' if current_user = User.find_by(id: 1)
凡1
是我想要的目標用戶的ID。
一個優雅的解決方案。 –