Elixir 凤凰城-Can';t从iex向频道广播
我试着通过:IEX-S mix和IEX-S mix phoenix.server打开IEX 这是我的用户接口:Elixir 凤凰城-Can';t从iex向频道广播,elixir,phoenix-framework,Elixir,Phoenix Framework,我试着通过:IEX-S mix和IEX-S mix phoenix.server打开IEX 这是我的用户接口: defmodule Final.UserSocket do use Phoenix.Socket channel "keywords*", Final.KeywordsChannel transport :websocket, Phoenix.Transports.WebSocket def connect(_params, socket) do
defmodule Final.UserSocket do
use Phoenix.Socket
channel "keywords*", Final.KeywordsChannel
transport :websocket, Phoenix.Transports.WebSocket
def connect(_params, socket) do
{:ok, socket}
end
def id(_socket), do: nil
end
和关键字Schannel:
defmodule Final.KeywordsChannel do
use Final.Web, :channel
use Phoenix.Channel
def join("keywords",_, socket) do
IO.puts "helloo"
{:ok, "aaaa", socket}
end
def handle_in("new_msg", %{"body" => body}, socket) do
IO.puts "hello"
broadcast! socket, "new_msg", %{body: body}
{:noreply, socket}
end
def handle_out("new_msg", payload, socket) do
IO.puts "hell"
push socket, "new_msg", payload
{:noreply, socket}
end
end
我试着这样称呼它:
Final.Endpoint.broadcast(“关键字”、“新消息”、%{body:“b”})
Final.Endpoint.broadcast!“关键字”、“新消息”、%{body:“b”}
我能想到的每一个变化,但从来没有得到任何回应,只是:“ok”
将1.3.2长生不老药与phoenix 1.2.1一起使用检查您的输入错误:
频道“关键字:”,Final.keywordsAnnel
,然后重试。没有区别,无论如何,join/3工作(通过js)只要在您使用YourApp.Endpoint.broadcast时处理,似乎没有注册:)/3
在iex
中,您将收到:ok
。如果您想查看响应,请从客户端浏览器收听您的事件:频道。在(“new_msg”,payload=>{console.log(payload)}
上检查您的键入:频道“关键字:*”,Final.keywordsAnnel
,然后重试。没有区别,无论如何,请加入/3工作(通过js)当您使用YourApp.Endpoint.broadcast时,只需处理\u in似乎没有注册:)/3
在iex
中,您将收到:ok
。如果您想查看响应,请从客户端浏览器收听您的事件:channel.on(“new_msg”,payload=>{console.log(payload)}