我已经构建了一个像这里的小聊天应用程序: 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"
它们都不起作用......其中一些会抛出异常:(
答案 0 :(得分:8)
由于您使用的是0.13,因此您需要广播端点,并且需要提供主题,事件和有效负载(作为地图)。试试这个:
Chat.Endpoint.broadcast("rooms:lobby", "new:msg", %{message: "hello from the console"})
此代码段会对您的频道和客户端代码做出一些假设,因此如果它不起作用,请提供您的路由器,频道和js代码,以便我们可以提供进一步的帮助。