フル検索の1日後に、WebSocket javascriptクラスを使用してPhoenixチャンネルにイベントを送信する方法が見つかりませんでした。WebSocket(js)でPhoenix(elixir)チャンネルの使用
これは私のチャンネル定義である:
defmodule Test.GeneralRoomChannel do
use Test.Web, :channel
# Rejoins la room générale
def join("general_room:lobby", payload, socket) do
if authorized?(payload) do
{:ok, socket}
else
{:error, %{reason: "unauthorized"}}
end
end
def handle_in("send_msg", payload, socket) do
broadcast! socket, "send_msg", payload
{:noreply, socket}
end
# Add authorization logic here as required.
defp authorized?(_payload) do
true
end
end
私はチャンネル
this.ws = new WebSocket('ws://x.x.x.x:4000/socket/websocket');
this.ws.onopen =() => {
this.ws.send(JSON.stringify({
"topic": "general_room:lobby",
"event": "phx_join",
"payload": {"username": "Peekmo"},
"ref": "lfskj"
}));
};
それは「参加」イベントのために動作しますが、私が送信する方法がわからないの参加に接続するためにこれを持っています"send_msg"イベント。私はこれを行うとき:
this.ws.send(JSON.stringify({
"topic": "general_room:lobby",
"event": "send_msg",
"payload": {"body": this.state.text},
"ref": "sdkfml"
}));
Test.GeneralRoomChannel.handle_in/3
における機能なし句マッチングを私はなぜ理解していない、と私はWebSocketを持つ非常に快適ではないよと、私は少しです失われた
私は限り私はあなたのポストを与えられた可能性があるのでお答えしようとしています...ここエリキシルはあなたを与えることを正確なエラーを貼り付けようと、私たちはさらに調査することができますしてください。 – TheSquad