Phoenix:从 IEx 控制台广播

Phoenix: Broadcasting from IEx console

我已经构建了一个像这里这样的小型聊天应用程序: https://github.com/chrismccord/phoenix_chat_example/blob/master/web/channels/room_channel.ex

并且无法弄清楚如何向主题中的所有用户广播一条消息。在上面的应用程序中(没有像我正在使用的那样更新到 v0.13),我该怎么做?以下是我尝试过但没有成功的方法:

Phoenix.PubSub.broadcast Chat.PubSub, "new:msg", "hello from the console"
Phoenix.PubSub.broadcast Chat.Endpoint, "new:msg", "hello from the console"
Phoenix.PubSub.broadcast Chat.RoomChannel, "new:msg", "hello from the console"

None 他们工作......他们中的一些抛出异常:(

由于您使用的是 0.13,因此需要在端点之外进行广播,并且需要提供主题、事件和有效负载(作为地图)。试试这个:

Chat.Endpoint.broadcast("rooms:lobby", "new:msg", %{message: "hello from the console"})

此代码段对您的频道和客户端代码做了一些假设,因此如果它不起作用,请提供您的路由器、频道和 js 代码,以便我进一步提供帮助。