Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Elixir 凤凰城-Can';t从iex向频道广播_Elixir_Phoenix Framework - Fatal编程技术网

Elixir 凤凰城-Can';t从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

我试着通过: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
      {: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)}