1) Оформлять подписку нужно по id на конкретного пользователя, если появится новое сообщение(новость и т.д) мы его не получим, т.к на этот диалог(новость) ты не был подписан.
Пример подписки
def subscribed
stop_all_streams
stream_from "conversations:#{current_user.id}"
end
2) Можно и так и так.
3) Пример авторизации пользователя для devise
module ApplicationCable
class Connection < ActionCable::Connection::Base
identified_by :current_user
def connect
self.current_user = find_verified_user
logger.add_tags 'ActionCable', "User #{current_user.id}"
end
protected
def find_verified_user
if (verified_user = env['warden'].user)
verified_user
else
reject_unauthorized_connection
end
end
end
end