2016-05-19 3 views
4

Я работаю над уведомлениями о моем приложении rails. Существует модель пользователя и контроллер, а модель Like, связанная с пользователем с пользователем, имеет много ассоциаций Likes.ActionCable: Один канал на одного пользователя

Идея состоит в том, что если пользователю нравится профиль другого пользователя, владелец профиля получит живое уведомление.

Это мое приложение для понимания ActionCable. Я изучил cable api, pub-sub был для меня новичком. Я смог успешно общаться через один канал, а также успешно использовал authorization. Но, тем не менее, я не понимаю, как использовать один канал для каждого пользователя (динамически генерируемый канал), так что сообщение, отправленное одному пользователю, не переходит к другому пользователю.

Возможно ли использование динамического канала?

Или есть другие способы, где один удовлетворяет канал все пользователи должны

+0

_Dynamically generated channel_? Что ты имеешь в виду? Отдельное подключение к любому пользователю? –

+0

@ Зелёный Я просто подумал, есть ли какой-нибудь стандартный способ сделать это. В «ApplicationCable :: Channel» можно предоставить сгенерированные имена каналов с помощью строковой интерполяции, подобные этой «stream_from» x_channel _ # {user_id} », а также для трансляции« ActionCable.server.broadcast »x_channel _ # {user_id}", сообщение: «Received» ' – Will

+0

@ Зелёный да, отдельное соединение для каждого пользователя – Will

ответ

6

Решение было на самом деле просто, но некоторые новые термины, введенные в ActionCable сделал это сбивает с толку. Кстати, вот как я это решил.

Я использовал один канал, но несколько потоков для разных пользователей. Вот ActionCable documentation link, в котором четко указывается очень идентичный сценарий. Я просмотрел документацию раньше, но почему-то я не понял ее с первого взгляда.

Извините, что для получения прямого кода я думаю, что документация полностью объяснит его.

Смежные вопросы