作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
来自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/
来自Rails Guide我发现以下三个代码片段 ActionCable.server.broadcast("chat_#{params[:room]}", data) 这个简单的广播将数据发送到特定
我是一名优秀的程序员,十分优秀!