У меня есть приложение Rails с сервером PubSub (Faye) в качестве промежуточного программного обеспечения. У меня есть обычная структура Rails для моделей, представлений и контроллеров, и у меня есть несколько контроллеров для моих каналов Socket.. (При условии от FayeRails)
Проблема: мне нужно разделить список клиентов между моими контроллерами сокетов и моими обычными контроллерами. Это связано с тем, что аутентификация выполняется через контроллер Rails (поэтому я могу использовать сеансы).
Обычно я бы помещал такие вещи в свой ApplicationController
, чтобы все унаследованные контроллеры и представления могли получить к нему доступ, но контроллеры сокетов унаследованы от FayeRails::Controller
, так что это не вариант. Я понятия не имею, куда идут экземпляры этих контроллеров. Кроме того, я не могу редактировать инициализацию, потому что все контроллеры автоматически настраиваются Rails и гемом FayeRails. Я пытался использовать глобальные переменные, но это кажется неправильным. Также я думал об ActiveRecord, но мне кажется неправильным добавлять быстро меняющиеся данные в базу данных. Наконец, я подумал об ActiveRecord-подобном классе, который содержит список, но это похоже на глобальный..
Я не могу придумать никаких других вариантов для совместного использования списка клиентов между этими двумя контроллерами.
Какой был бы хороший и чистый способ сделать это?