【发布时间】:2023-03-27 18:25:02
【问题描述】:
我正在为我的 rails 应用程序处理通知。有 User 模型和控制器,并且 Like 模型关联到 User 与 User 有许多 Likes 关联。
这个想法是,如果用户喜欢另一个用户的个人资料,个人资料的所有者将收到实时通知。
这是我理解 ActionCable 的应用程序。我研究了cable api,pub-sub 对我来说是新的。我能够通过单一渠道进行成功的沟通,并且还成功使用了authorization。但是,我仍然不明白如何为每个用户使用单个频道(动态生成的频道),以便发布给一个用户的消息不会发送给另一个用户。
动态通道可以吗?
或者,是否有其他方式可以通过单一渠道满足所有用户的需求
【问题讨论】:
-
动态生成的频道?你是什么意思?与任何用户的单独连接?
-
@Зелёный 我只是想是否有任何标准方法可以做到这一点。在
ApplicationCable::Channel中,可以为生成的频道名称提供像stream_from "x_channel_#{user_id}"这样的字符串插值,也可以用于广播ActionCable.server.broadcast "x_channel_#{user_id}", message: "Received" -
@Зелёный 是的,为每个用户单独连接
-
单独连接 - 这不是一个好习惯。
-
@Зелёный 请提供方法
标签: ruby-on-rails redis ruby-on-rails-5 actioncable