gpt4 book ai didi

ruby-on-rails - rails 5 中 broadcast 、 broadcast_to 和 broadcast_for 的区别

转载 作者:数据小太阳 更新时间:2023-10-29 07:18:59 24 4
gpt4 key购买 nike

来自Rails Guide我发现以下三个代码片段

ActionCable.server.broadcast("chat_#{params[:room]}", data)

这个简单的广播将数据发送到特定的聊天室

而如下所示的 broadcast_to 似乎将数据发送到当前用户订阅的 channel 内的所有聊天室。

WebNotificationsChannel.broadcast_to(
current_user,
title: 'New things!',
body: 'All the news fit to print'
)

这是另一种类型的广播broadcast_for - 我找不到任何例子。

我的问题是这三者之间的实际区别是什么以及何时使用它们中的每一个 - 提前致谢

最佳答案

broadcasting_for 返回一个可以重复使用的对象。这对于在代码/时间的不同点向同一个房间发送多条消息很有用。 broadcast 最终调用了 broadcasting_for,所以基本上是一样的。

broadcast_to 来自 channel 类。您可以在创建 channel 后使用它。假设您要通知博客帖子评论的所有订阅者。那么您的 channel 将类似于示例:

class CommentsChannel < ApplicationCable::Channel
def subscribed
post = Post.find(params[:id])
stream_for post
end
end
# use CommentsChannel.broadcast_to(@post, @comment)

但是如果您想向特定用户发送更多定向消息,那么您可以使用一个名为 EmailNotifications 的类,它只关心特定用户。

class EmailNotificationsChannel < ApplicationCable::Channel
...

EmailNotificationsChannel.broadcast_to(
current_user,
title: 'You have mail!',
body: data[:email_preview] # some assumption of passed in or existing data hash here
)

关于ruby-on-rails - rails 5 中 broadcast 、 broadcast_to 和 broadcast_for 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41806862/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com