etspring
@etspring
Начитанное быдло

Как заставить ActionCable юзать свой собственный namespace в Redis?

Утро в хату, уважаемые!

ENV: ruby 2.4.1, rails 5.1, nginx 1.10.3
Имеется сервак, на котором крутятся 3 одинаковых сервиса. Каждый из сервисов использует WebSockets.
Все настройки канала одинаковы. Различие есть только в конфиге cable.yml
Для первого сервиса:
production: &production
  adapter: redis
  url: redis://localhost:6379/1


Для двух других
url: redis://localhost:6379/2 и url: redis://localhost:6379/3 соответственно.

Канал:
class MessagesChannel < ApplicationCable::Channel  
  def subscribed
    stream_from 'messages'
  end
end


При отправке сообщения в канал одним из сервисов - оно прилетает и подписчикам других.
Отправка:
ActionCable.server.broadcast('messages', message.to_json)


Как побороть сие недоразмение? Куда копать?

P.S: Пробовал разносить по разным каналам - те же яйцы только в профиль.

UPD:
Закостылил при помощи gem 'action_cable_subscription_adapter', но хотелось бы штатными средствами конечно.
  • Вопрос задан
  • 98 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы