如何从 Phoenix 控制器向 Channel 广播消息?

Posted

技术标签:

【中文标题】如何从 Phoenix 控制器向 Channel 广播消息?【英文标题】:How to broadcast a message from a Phoenix Controller to a Channel? 【发布时间】:2016-03-01 19:44:24 【问题描述】:

有没有办法从频道外向频道广播消息?

也许像Channel.broadcast topic, event, data

我看到了类似here 的内容,但Phoenix.Channel.broadcast/3 的最终版本(截至今天)采用了一个暗示频道和主题的套接字。

【问题讨论】:

【参考方案1】:

您可以为此使用MyApp.Endpoint.broadcast(topic, event, msg)

查看http://hexdocs.pm/phoenix/Phoenix.Endpoint.html

【讨论】:

请注意,如果您从 iex 运行此程序,则需要使用 iex -S mix phoenix.server 启动您的应用程序才能工作。 这可能是我自己应该找到的东西 :-) ...我用谷歌搜索了很多东西,但这个东西没有出现。也许它现在在这里是最好的。 克隆了这个例子github.com/chrismccord/phoenix_chat_example并且工作正常但是如果我输入iex -S mix然后运行聊天Chat.Endpoint.broadcast "rooms:lobby", "new:msg", %"user" => "Boris", "body" => "Tes msg" 它不会出现在浏览器中的消息 @BorisBarroso 您需要执行iex -S mix phoenix.server 以确保Pheonix 也启动。如果只做iex -S mix就不能广播,因为它不会启动服务器。 谢谢@Gazler!我不知道,我正试图从 iex 发送消息而发疯!

以上是关于如何从 Phoenix 控制器向 Channel 广播消息?的主要内容,如果未能解决你的问题,请参考以下文章

如何测试在Phoenix中使用HEAD的控制器方法

SSH如何去发布订阅监听

如何使用 elixir/phoenix 从 csv 文件导入用户?

如何从命令行界面检查 Apache Phoenix 的版本?

Phoenix - 具有多个渲染的控制器

如何使用 R 向 SQL Server 表中插入数据?