如何从 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 广播消息?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 elixir/phoenix 从 csv 文件导入用户?